From b505e79d2ae69c902be0d681c2a2f5dca7e3307a Mon Sep 17 00:00:00 2001 From: Pingex Date: Sat, 14 Jan 2017 18:02:55 +0100 Subject: [PATCH] Effective removal of annotated commands. --- .../pingex/dcf/commands/AnnotatedCommand.java | 47 ------------------- .../java/net/pingex/dcf/commands/Command.java | 17 ------- .../pingex/dcf/commands/CommandHandler.java | 34 +------------- .../dcf/commands/IWithAnnotatedCommands.java | 17 ------- 4 files changed, 2 insertions(+), 113 deletions(-) delete mode 100644 src/main/java/net/pingex/dcf/commands/AnnotatedCommand.java delete mode 100644 src/main/java/net/pingex/dcf/commands/IWithAnnotatedCommands.java diff --git a/src/main/java/net/pingex/dcf/commands/AnnotatedCommand.java b/src/main/java/net/pingex/dcf/commands/AnnotatedCommand.java deleted file mode 100644 index d7b8b73..0000000 --- a/src/main/java/net/pingex/dcf/commands/AnnotatedCommand.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.pingex.dcf.commands; - -import net.pingex.dcf.permissions.DefaultPermission; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Indicated a method which is in fact a command - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -@Deprecated -public @interface AnnotatedCommand -{ - /** - * Main name of the command - */ - String name(); - - /** - * Command can also be called using the following list of aliases - */ - String[] aliases() default {}; - - /** - * Description of the command. - */ - String description() default Command.Defaults.DESCRIPTION; - - /** - * Is the command enabled ? Can it be invoked ? - */ - boolean isEnabled() default Command.Defaults.IS_ENABLED; - - /** - * Command usage help - */ - String usage() default Command.Defaults.USAGE; - - /** - * Default permission, ie. when the permissions provider doesn't return anything. - */ - @Deprecated - DefaultPermission defaultPermission() default DefaultPermission.EVERYONE; -} diff --git a/src/main/java/net/pingex/dcf/commands/Command.java b/src/main/java/net/pingex/dcf/commands/Command.java index bcd1425..54d53d8 100644 --- a/src/main/java/net/pingex/dcf/commands/Command.java +++ b/src/main/java/net/pingex/dcf/commands/Command.java @@ -222,23 +222,6 @@ public abstract class Command implements ICommandExecutor return new Builder(name); } - /** - * Create a new command object from an annotated method - * @param target Target method - * @return A new created command built from the method, or `null` if the method is not a valid command. - */ - @Deprecated - public static Command buildFromAnnotatedCommand(AnnotatedCommand meta, Method target, Object invokable) - { - return builder(meta.name()) - .aliases(Arrays.asList(meta.aliases())) - .description(meta.description()) - .enabled(meta.isEnabled()) - .usage(meta.usage()) - .defaultPermission(meta.defaultPermission()) - .build(target, invokable); - } - public String getName() { return name; diff --git a/src/main/java/net/pingex/dcf/commands/CommandHandler.java b/src/main/java/net/pingex/dcf/commands/CommandHandler.java index 7c7624b..3924a0d 100644 --- a/src/main/java/net/pingex/dcf/commands/CommandHandler.java +++ b/src/main/java/net/pingex/dcf/commands/CommandHandler.java @@ -103,26 +103,11 @@ public class CommandHandler */ public static void registerPlugin(PluginWrapper pluginWrapper) { - LOGGER.debug("Registering commands for plugin {}.", pluginWrapper.getId()); - - // Raw commands if(IWithCommands.class.isAssignableFrom(pluginWrapper.getInstance().getClass())) { - LOGGER.debug("Plugin has commands (raw commands)."); + LOGGER.debug("Registering commands for plugin {}.", pluginWrapper.getId()); ((IWithCommands) pluginWrapper.getInstance()).getCommands().forEach(CommandRegistry::registerCommand); } - - // Annotated commands - if(IWithAnnotatedCommands.class.isAssignableFrom(pluginWrapper.getInstance().getClass())) - { - LOGGER.debug("Plugin has commands (annotated commands)."); - ((IWithAnnotatedCommands) pluginWrapper.getInstance()).getAnnotatedObjects().forEach(e -> - { - for(Method i : e.getClass().getMethods()) - if(i.isAnnotationPresent(AnnotatedCommand.class)) - CommandRegistry.registerCommand(Command.buildFromAnnotatedCommand(i.getAnnotation(AnnotatedCommand.class), i, e)); - }); - } } /** @@ -131,25 +116,10 @@ public class CommandHandler */ public static void unregisterPlugin(PluginWrapper pluginWrapper) { - LOGGER.debug("Removing commands for plugin {}.", pluginWrapper.getId()); - - // Raw commands if(IWithCommands.class.isAssignableFrom(pluginWrapper.getInstance().getClass())) { - LOGGER.debug("Plugin has commands (raw commands)."); + LOGGER.debug("Removing commands for plugin {}.", pluginWrapper.getId()); ((IWithCommands) pluginWrapper.getInstance()).getCommands().forEach(CommandRegistry::unregisterCommand); } - - // Annotated commands - if(IWithAnnotatedCommands.class.isAssignableFrom(pluginWrapper.getInstance().getClass())) - { - LOGGER.debug("Plugin has commands (annotated commands)."); - ((IWithAnnotatedCommands) pluginWrapper.getInstance()).getAnnotatedObjects().forEach(e -> - { - for(Method i : e.getClass().getMethods()) - if(i.isAnnotationPresent(AnnotatedCommand.class)) - CommandRegistry.unregisterCommandByName(i.getAnnotation(AnnotatedCommand.class).name()); - }); - } } } diff --git a/src/main/java/net/pingex/dcf/commands/IWithAnnotatedCommands.java b/src/main/java/net/pingex/dcf/commands/IWithAnnotatedCommands.java deleted file mode 100644 index c27538e..0000000 --- a/src/main/java/net/pingex/dcf/commands/IWithAnnotatedCommands.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.pingex.dcf.commands; - -import java.util.Set; - -/** - * Indicates a plugin which can run commands (using annotated commands) - */ -@FunctionalInterface -@Deprecated -public interface IWithAnnotatedCommands -{ - /** - * Gives all annotated commands for this plugin. - * @return A set of objects which contains annotated commands. - */ - Set getAnnotatedObjects(); -}