From a4e493e577697210cdc7bd3314a5fe812a5ac20b Mon Sep 17 00:00:00 2001 From: Pingex Date: Sat, 27 Aug 2016 13:31:11 +0200 Subject: [PATCH] Missing unregister --- .../pingex/dcf/commands/CommandHandler.java | 19 +++++++++++++++++++ .../pingex/dcf/commands/CommandRegistry.java | 1 - 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/pingex/dcf/commands/CommandHandler.java b/src/main/java/net/pingex/dcf/commands/CommandHandler.java index 6d2d0c4..93a8bb4 100644 --- a/src/main/java/net/pingex/dcf/commands/CommandHandler.java +++ b/src/main/java/net/pingex/dcf/commands/CommandHandler.java @@ -80,5 +80,24 @@ 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)."); + ((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/CommandRegistry.java b/src/main/java/net/pingex/dcf/commands/CommandRegistry.java index 6a908ce..a54f19e 100644 --- a/src/main/java/net/pingex/dcf/commands/CommandRegistry.java +++ b/src/main/java/net/pingex/dcf/commands/CommandRegistry.java @@ -2,7 +2,6 @@ package net.pingex.dcf.commands; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - import java.util.*; /**