mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 11:06:29 +01:00
57dd397155
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
From 2b5c599b3684a15bdcd52ec6d182c9f5cef13ca1 Mon Sep 17 00:00:00 2001
|
|
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
|
|
index d363d517c..abbe545af 100644
|
|
--- a/src/main/java/org/bukkit/metadata/MetadataStoreBase.java
|
|
+++ b/src/main/java/org/bukkit/metadata/MetadataStoreBase.java
|
|
@@ -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> {
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
+ * 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
|
|
+ */
|
|
+ public void removeAll(@NotNull Plugin owningPlugin) {
|
|
+ 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();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
/**
|
|
* Creates a unique name for the object receiving metadata by combining
|
|
* unique data from the subject with a metadataKey.
|
|
--
|
|
2.26.2
|
|
|