From 829d79a7376b156b59e9dbbafbd23729f423ba73 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 19 Jul 2017 22:56:22 -0400 Subject: [PATCH] Fix the Bukkit force unregister command logic The previous made the command think it was fully unregistered, instead of just removing just the conflicting entry. --- .../aikar/commands/BukkitCommandManager.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java index 702933a4..fb0a320c 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java @@ -150,10 +150,20 @@ public class BukkitCommandManager extends CommandManager ce : knownCommands.entrySet()) { + String key = ce.getKey(); + Command value = ce.getValue(); + if (key.contains(":") && oldCommand.equals(value)) { + String[] split = ACFPatterns.COLON.split(key, 2); + if (split.length > 1) { + oldCommand.unregister(commandMap); + oldCommand.setLabel(split[0] + ":" + command.getName()); + oldCommand.register(commandMap); + } + } } } commandMap.register(commandName, plugin, bukkitCommand);