package me.unurled.sacredrealms.sr.commands; import static me.unurled.sacredrealms.sr.utils.Logger.error; import java.lang.reflect.InvocationTargetException; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.commands.admin.AttributeCommand; import me.unurled.sacredrealms.sr.commands.player.ResetAdventureCommand; import me.unurled.sacredrealms.sr.managers.Manager; import org.bukkit.command.PluginCommand; import org.bukkit.command.TabExecutor; public class CommandManager extends Manager { private static void registerCommand(String command, Class clazz) { PluginCommand pluginCommand = SR.getInstance().getCommand(command); if (pluginCommand != null) { try { T instance = clazz.getDeclaredConstructor().newInstance(); pluginCommand.setExecutor(instance); pluginCommand.setTabCompleter(instance); } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { error("Failed to register command " + command + "\n" + e.getMessage()); } } } /** Load the manager */ @Override public void load() { super.load(); registerCommand("attributes", AttributeCommand.class); registerCommand("clientbuild", ClientBuildCommand.class); registerCommand("resetadventure", ResetAdventureCommand.class); } }