diff options
Diffstat (limited to 'patches/server/0069-Remove-Metadata-on-reload.patch')
-rw-r--r-- | patches/server/0069-Remove-Metadata-on-reload.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/patches/server/0069-Remove-Metadata-on-reload.patch b/patches/server/0069-Remove-Metadata-on-reload.patch new file mode 100644 index 0000000000..deda8cd6e0 --- /dev/null +++ b/patches/server/0069-Remove-Metadata-on-reload.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Fri, 18 Mar 2016 13:50:14 -0400 +Subject: [PATCH] Remove Metadata on reload + +Metadata is not meant to persist reload as things break badly with non primitive types +This will remove metadata on reload so it does not crash everything if a plugin uses it. + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index f8d2850c35e1b41c1844773c4b0452c17bd72f19..502e7f4e168b7f9c6a0f68695f36b8d44cce218e 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -993,8 +993,16 @@ public final class CraftServer implements Server { + world.spigotConfig.init(); // Spigot + } + ++ Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper + this.pluginManager.clearPlugins(); + this.commandMap.clearCommands(); ++ // Paper start ++ for (Plugin plugin : pluginClone) { ++ entityMetadata.removeAll(plugin); ++ worldMetadata.removeAll(plugin); ++ playerMetadata.removeAll(plugin); ++ } ++ // Paper end + this.reloadData(); + org.spigotmc.SpigotConfig.registerCommands(); // Spigot + io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper |