diff --git a/src/main/java/dev/plex/command/annotation/System.java b/src/main/java/dev/plex/command/annotation/System.java index 0e27e90..efe2ea1 100644 --- a/src/main/java/dev/plex/command/annotation/System.java +++ b/src/main/java/dev/plex/command/annotation/System.java @@ -1,5 +1,9 @@ package dev.plex.command.annotation; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) public @interface System { String value() default ""; diff --git a/src/main/java/dev/plex/handlers/CommandHandler.java b/src/main/java/dev/plex/handlers/CommandHandler.java index 346c69e..a550d5f 100644 --- a/src/main/java/dev/plex/handlers/CommandHandler.java +++ b/src/main/java/dev/plex/handlers/CommandHandler.java @@ -21,10 +21,9 @@ public class CommandHandler extends PlexBase { try { - System annotation = clazz.getDeclaredAnnotation(System.class); - // TODO: Annotations are always null? - if (annotation != null) + if (clazz.isAnnotationPresent(System.class)) { + System annotation = clazz.getDeclaredAnnotation(System.class); PlexLog.debug(clazz.getName() + " has annotations"); if (annotation.value().equalsIgnoreCase(plugin.getSystem().toLowerCase())) { @@ -41,7 +40,6 @@ public class CommandHandler extends PlexBase else { commands.add(clazz.getConstructor().newInstance()); - // PlexLog.debug("Adding command normally " + clazz.getName()); } } catch (InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException ex) diff --git a/src/main/java/dev/plex/handlers/ListenerHandler.java b/src/main/java/dev/plex/handlers/ListenerHandler.java index ea4d0dd..a029992 100644 --- a/src/main/java/dev/plex/handlers/ListenerHandler.java +++ b/src/main/java/dev/plex/handlers/ListenerHandler.java @@ -21,12 +21,14 @@ public class ListenerHandler extends PlexBase { try { - Toggleable annotation = clazz.getDeclaredAnnotation(Toggleable.class); - if (annotation != null) + if (clazz.isAnnotationPresent(Toggleable.class)) { + Toggleable annotation = clazz.getDeclaredAnnotation(Toggleable.class); + PlexLog.debug(clazz.getName() + " has annotations"); if (plugin.config.get(annotation.value()) != null && plugin.config.getBoolean(annotation.value())) { listeners.add(clazz.getConstructor().newInstance()); + PlexLog.debug("Registering " + clazz.getName() + " as a listener"); } } else diff --git a/src/main/java/dev/plex/listener/annotation/Toggleable.java b/src/main/java/dev/plex/listener/annotation/Toggleable.java index 1d13b11..16e7829 100644 --- a/src/main/java/dev/plex/listener/annotation/Toggleable.java +++ b/src/main/java/dev/plex/listener/annotation/Toggleable.java @@ -1,5 +1,9 @@ package dev.plex.listener.annotation; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) public @interface Toggleable { String value();