diff --git a/eco-api/src/main/java/com/willfp/eco/core/command/impl/PluginCommand.java b/eco-api/src/main/java/com/willfp/eco/core/command/impl/PluginCommand.java index 528c0710..04f2ed4e 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/command/impl/PluginCommand.java +++ b/eco-api/src/main/java/com/willfp/eco/core/command/impl/PluginCommand.java @@ -41,8 +41,6 @@ public abstract class PluginCommand extends HandledCommand implements CommandExe /** * Registers the command with the server, - *
- * Requires the command name to exist, defined in plugin.yml. */ public final void register() { org.bukkit.command.PluginCommand command = Bukkit.getPluginCommand(this.getName()); @@ -50,12 +48,9 @@ public abstract class PluginCommand extends HandledCommand implements CommandExe command.setExecutor(this); command.setTabCompleter(this); } else { - CommandMap commandMap = getCommandMap(); + this.unregister(); - Command bukkit = commandMap.getCommand(this.getName()); - if (bukkit != null) { - bukkit.unregister(commandMap); - } + CommandMap commandMap = getCommandMap(); commandMap.register(this.getName(), new DelegatedBukkitCommand(this)); @@ -63,6 +58,18 @@ public abstract class PluginCommand extends HandledCommand implements CommandExe } } + /** + * Unregisters the command from the server. + */ + public final void unregister() { + CommandMap commandMap = getCommandMap(); + + Command found = commandMap.getCommand(this.getName()); + if (found != null) { + found.unregister(commandMap); + } + } + /** * Internal implementation used to clean up boilerplate. * Used for parity with {@link CommandExecutor#onCommand(CommandSender, Command, String, String[])}. diff --git a/eco-core/core-nms/v1_17_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_17_R1/SyncCommands.kt b/eco-core/core-nms/v1_17_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_17_R1/SyncCommands.kt index 82ff7007..496bac6e 100644 --- a/eco-core/core-nms/v1_17_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_17_R1/SyncCommands.kt +++ b/eco-core/core-nms/v1_17_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_17_R1/SyncCommands.kt @@ -7,8 +7,5 @@ import org.bukkit.craftbukkit.v1_17_R1.CraftServer class SyncCommands : SyncCommandsProxy { override fun syncCommands() { (Bukkit.getServer() as CraftServer).syncCommands() - for (player in Bukkit.getOnlinePlayers()) { - player.updateCommands() - } } } diff --git a/eco-core/core-nms/v1_18_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R1/SyncCommands.kt b/eco-core/core-nms/v1_18_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R1/SyncCommands.kt index cd770b92..38fa6bb2 100644 --- a/eco-core/core-nms/v1_18_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R1/SyncCommands.kt +++ b/eco-core/core-nms/v1_18_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R1/SyncCommands.kt @@ -7,8 +7,5 @@ import org.bukkit.craftbukkit.v1_18_R1.CraftServer class SyncCommands : SyncCommandsProxy { override fun syncCommands() { (Bukkit.getServer() as CraftServer).syncCommands() - for (player in Bukkit.getOnlinePlayers()) { - player.updateCommands() - } } } diff --git a/eco-core/core-nms/v1_18_R2/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R2/SyncCommands.kt b/eco-core/core-nms/v1_18_R2/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R2/SyncCommands.kt index 8cedf493..37a4f414 100644 --- a/eco-core/core-nms/v1_18_R2/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R2/SyncCommands.kt +++ b/eco-core/core-nms/v1_18_R2/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_18_R2/SyncCommands.kt @@ -7,8 +7,5 @@ import org.bukkit.craftbukkit.v1_18_R2.CraftServer class SyncCommands : SyncCommandsProxy { override fun syncCommands() { (Bukkit.getServer() as CraftServer).syncCommands() - for (player in Bukkit.getOnlinePlayers()) { - player.updateCommands() - } } } diff --git a/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_19_R1/SyncCommands.kt b/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_19_R1/SyncCommands.kt index e2eb1dae..9e6539b0 100644 --- a/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_19_R1/SyncCommands.kt +++ b/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/eco/internal/spigot/proxy/v1_19_R1/SyncCommands.kt @@ -7,8 +7,5 @@ import org.bukkit.craftbukkit.v1_19_R1.CraftServer class SyncCommands : SyncCommandsProxy { override fun syncCommands() { (Bukkit.getServer() as CraftServer).syncCommands() - for (player in Bukkit.getOnlinePlayers()) { - player.updateCommands() - } } }