diff options
Diffstat (limited to 'patches/server/0066-Remove-Metadata-on-reload.patch')
-rw-r--r-- | patches/server/0066-Remove-Metadata-on-reload.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/patches/server/0066-Remove-Metadata-on-reload.patch b/patches/server/0066-Remove-Metadata-on-reload.patch new file mode 100644 index 0000000000..006d87514f --- /dev/null +++ b/patches/server/0066-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 f7726d16d37c64228515b0791d921b047bc887e6..f69d5e8f22fa8335b19f9e777ddbd33443eb08dc 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -964,8 +964,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 |