From 2ca8925d14fdceff086d7f542ed9e2747ec0f651 Mon Sep 17 00:00:00 2001 From: jascotty2 Date: Wed, 21 Aug 2019 23:58:41 -0500 Subject: [PATCH] add commandmanager dynamic register class function --- .../java/com/songoda/core/SongodaCore.java | 5 ++--- .../core/library/commands/CommandManager.java | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/core/SongodaCore.java b/src/main/java/com/songoda/core/SongodaCore.java index 1a9f1c04..8520795b 100644 --- a/src/main/java/com/songoda/core/SongodaCore.java +++ b/src/main/java/com/songoda/core/SongodaCore.java @@ -63,9 +63,8 @@ public class SongodaCore { public SongodaCore(JavaPlugin javaPlugin) { piggybackedPlugin = javaPlugin; - commandManager = new CommandManager(javaPlugin); - CommandManager.registerCommandDynamically(piggybackedPlugin, "songoda", commandManager, commandManager); - commandManager.addCommand(new SongodaCoreCommand(this)) + commandManager = new CommandManager(piggybackedPlugin); + commandManager.registerCommandDynamically(new SongodaCoreCommand(this)) .addSubCommand(new SongodaCoreDiagCommand(this)); Bukkit.getPluginManager().registerEvents(loginListener, javaPlugin); } diff --git a/src/main/java/com/songoda/core/library/commands/CommandManager.java b/src/main/java/com/songoda/core/library/commands/CommandManager.java index fd30f775..4b2f575a 100644 --- a/src/main/java/com/songoda/core/library/commands/CommandManager.java +++ b/src/main/java/com/songoda/core/library/commands/CommandManager.java @@ -55,6 +55,27 @@ public class CommandManager implements CommandExecutor, TabCompleter { return all; } + public CommandManager registerCommandDynamically(String command) { + CommandManager.registerCommandDynamically(plugin, command, this, this); + return this; + } + + public SimpleNestedCommand registerCommandDynamically(AbstractCommand abstractCommand) { + SimpleNestedCommand nested = new SimpleNestedCommand(abstractCommand); + abstractCommand.getCommands().stream().forEach(cmd -> { + CommandManager.registerCommandDynamically(plugin, cmd, this, this); + commands.put(cmd.toLowerCase(), nested); + PluginCommand pcmd = plugin.getCommand(cmd); + if(pcmd != null) { + pcmd.setExecutor(this); + pcmd.setTabCompleter(this); + } else { + plugin.getLogger().warning("Failed to register command: /" + cmd); + } + }); + return nested; + } + public SimpleNestedCommand addCommand(AbstractCommand abstractCommand) { SimpleNestedCommand nested = new SimpleNestedCommand(abstractCommand); abstractCommand.getCommands().stream().forEach(cmd -> {