diff --git a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/managers/BukkitPluginManager.java b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/managers/BukkitPluginManager.java index bb15553..3b1ad1d 100644 --- a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/managers/BukkitPluginManager.java +++ b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/managers/BukkitPluginManager.java @@ -251,15 +251,28 @@ public class BukkitPluginManager extends AbstractPluginManager pluginCommands) { - pluginCommands.values().forEach(c -> c.unregister(RCraftServer.getCommandMap())); - RCommandDispatcher.removeCommands(pluginCommands.keySet()); + private static void unregisterCommands(Map commands) { + commands.values().forEach(c -> { + if (c instanceof PluginCommand) { + PluginCommand pluginCommand = (PluginCommand) c; + pluginCommand.setExecutor(null); + pluginCommand.setTabCompleter(null); + } + c.unregister(RCraftServer.getCommandMap()); + }); + RCommandDispatcher.removeCommands(commands.keySet()); + + Map knownCommands = getKnownCommands(); + if (knownCommands == null) return; + knownCommands.values().removeIf(c -> c.equals(commands.get(c.getName().toLowerCase()))); } /** * Unregisters all the specified PluginCommand's. + * @deprecated Use {@link BukkitPluginManager#unregisterCommands(Map)} instead. * @param pluginCommands The commands to unregister. */ + @Deprecated public static void unregisterCommands(Collection pluginCommands) { Map knownCommands = getKnownCommands(); if (knownCommands == null) return;