2019-06-14 04:27:40 +02:00
|
|
|
From a63c6275864661b88d37ebb5870a53c978d2498d Mon Sep 17 00:00:00 2001
|
2016-03-29 04:43:05 +02:00
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Tue, 16 Jul 2013 21:26:50 -0400
|
|
|
|
Subject: [PATCH] Add MetadataStoreBase.removeAll(Plugin)
|
|
|
|
|
|
|
|
So that on reload, metadata will be cleared
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/metadata/MetadataStoreBase.java b/src/main/java/org/bukkit/metadata/MetadataStoreBase.java
|
2019-06-06 17:36:57 +02:00
|
|
|
index b3d85d973..0e8cd85c7 100644
|
2016-03-29 04:43:05 +02:00
|
|
|
--- a/src/main/java/org/bukkit/metadata/MetadataStoreBase.java
|
|
|
|
+++ b/src/main/java/org/bukkit/metadata/MetadataStoreBase.java
|
2019-04-23 06:47:07 +02:00
|
|
|
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.HashMap;
|
|
|
|
+import java.util.Iterator; // Paper
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.WeakHashMap;
|
|
|
|
@@ -130,6 +131,26 @@ public abstract class MetadataStoreBase<T> {
|
2018-03-10 14:07:40 +01:00
|
|
|
}
|
2016-03-29 04:43:05 +02:00
|
|
|
}
|
|
|
|
|
2018-03-10 14:07:40 +01:00
|
|
|
+ /**
|
2016-03-29 04:43:05 +02:00
|
|
|
+ * Removes all metadata in the metadata store that originates from the
|
|
|
|
+ * given plugin.
|
|
|
|
+ *
|
|
|
|
+ * @param owningPlugin the plugin requesting the invalidation.
|
|
|
|
+ * @throws IllegalArgumentException If plugin is null
|
|
|
|
+ */
|
2019-03-20 01:28:15 +01:00
|
|
|
+ public void removeAll(@NotNull Plugin owningPlugin) {
|
2016-03-29 04:43:05 +02:00
|
|
|
+ Validate.notNull(owningPlugin, "Plugin cannot be null");
|
|
|
|
+ for (Iterator<Map<Plugin, MetadataValue>> iterator = metadataMap.values().iterator(); iterator.hasNext(); ) {
|
|
|
|
+ Map<Plugin, MetadataValue> values = iterator.next();
|
|
|
|
+ if (values.containsKey(owningPlugin)) {
|
|
|
|
+ values.remove(owningPlugin);
|
|
|
|
+ }
|
|
|
|
+ if (values.isEmpty()) {
|
|
|
|
+ iterator.remove();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
2018-03-10 14:07:40 +01:00
|
|
|
/**
|
2016-03-29 04:43:05 +02:00
|
|
|
* Creates a unique name for the object receiving metadata by combining
|
|
|
|
* unique data from the subject with a metadataKey.
|
|
|
|
--
|
2019-03-20 01:28:15 +01:00
|
|
|
2.21.0
|
2016-03-29 04:43:05 +02:00
|
|
|
|