diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java index aab3dfab..a4eb45e6 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java @@ -182,13 +182,19 @@ public class BukkitCommandManager extends CommandManager entry : registeredCommands.entrySet()) { unregisterCommand(entry.getValue()); } + this.registeredCommands.clear(); } private class ACFBukkitListener implements Listener { diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java index 709dc367..f0a64ab9 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java @@ -101,11 +101,12 @@ public class BungeeCommandManager extends CommandManager entry : command.registeredCommands.entrySet()) { String commandName = entry.getKey().toLowerCase(); BungeeRootCommand bungeeCommand = (BungeeRootCommand) entry.getValue(); - if (bungeeCommand.isRegistered) { + bungeeCommand.getSubCommands().values().removeAll(command.subCommands.values()); + if (bungeeCommand.getSubCommands().isEmpty() && bungeeCommand.isRegistered) { unregisterCommand(bungeeCommand); + bungeeCommand.isRegistered = false; + registeredCommands.remove(commandName); } - bungeeCommand.isRegistered = false; - registeredCommands.remove(commandName); } }