From 570e627330af7968b10e989ec276bb693942ed6d Mon Sep 17 00:00:00 2001 From: Pepich Date: Thu, 30 Mar 2017 00:56:42 +0200 Subject: Made Executable able to override existing commands --- src/main/java/com/nemez/cmdmgr/util/Executable.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/nemez/cmdmgr/util/Executable.java b/src/main/java/com/nemez/cmdmgr/util/Executable.java index 01c2dc4..bfd608b 100644 --- a/src/main/java/com/nemez/cmdmgr/util/Executable.java +++ b/src/main/java/com/nemez/cmdmgr/util/Executable.java @@ -5,6 +5,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import java.util.logging.Level; import org.bukkit.Bukkit; @@ -88,6 +89,11 @@ public class Executable extends org.bukkit.command.Command { final Field cmdMap = Bukkit.getServer().getClass().getDeclaredField("commandMap"); cmdMap.setAccessible(true); CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer()); + final Field knownCommandsField = map.getClass().getDeclaredField("knownCommands"); + knownCommandsField.setAccessible(true); + @SuppressWarnings("unchecked") + Map knownCommands = (Map) knownCommandsField.get(map); + knownCommands.remove(name); map.register(name, this); } catch (Exception e) { plugin.getLogger().log(Level.SEVERE, "Failed to register command '" + name + "'!"); -- cgit v1.2.3