diff --git a/src/main/java/net/pingex/discordbot/AbstractModule.java b/src/main/java/net/pingex/discordbot/AbstractModule.java index 425a793..3fd2ba2 100644 --- a/src/main/java/net/pingex/discordbot/AbstractModule.java +++ b/src/main/java/net/pingex/discordbot/AbstractModule.java @@ -1,7 +1,6 @@ package net.pingex.discordbot; import sx.blah.discord.api.IDiscordClient; -import java.util.ArrayList; import java.util.logging.Logger; /** @@ -11,10 +10,7 @@ import java.util.logging.Logger; */ public abstract class AbstractModule { - /** - * Contains all `AbstractModule` instances created. - */ - private static final ArrayList REGISTERED = new ArrayList<>(); + protected Logger logger; @@ -24,7 +20,7 @@ public abstract class AbstractModule */ public AbstractModule(IDiscordClient client) { - REGISTERED.add(this); + ModulesRegistry.register(this); client.getDispatcher().registerListener(this); logger = Logger.getLogger(this.getClass().getName()); logger.info("Loading module " + this.getClass().getName()); diff --git a/src/main/java/net/pingex/discordbot/ModulesRegistry.java b/src/main/java/net/pingex/discordbot/ModulesRegistry.java new file mode 100644 index 0000000..66d67b8 --- /dev/null +++ b/src/main/java/net/pingex/discordbot/ModulesRegistry.java @@ -0,0 +1,23 @@ +package net.pingex.discordbot; + +import java.util.ArrayList; + +/** + * Class which keeps track of all known loaded modules + */ +public class ModulesRegistry +{ + /** + * Contains all `AbstractModule` instances created. + */ + private static ArrayList datastore = new ArrayList<>(); + + /** + * Action to register a loaded module + * @param toRegister Module to register + */ + public static void register(AbstractModule toRegister) + { + datastore.add(toRegister); + } +}