From 0fb317038a25fbdae320f462e9e30b4a7ceb3f76 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Tue, 30 Apr 2024 22:29:00 +0200 Subject: [PATCH] Add commandbase array --- .../plugin/base/PluginInitializer.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/pickshadow/plugin/base/PluginInitializer.java b/src/main/java/de/pickshadow/plugin/base/PluginInitializer.java index 42d2f53..5e5c583 100644 --- a/src/main/java/de/pickshadow/plugin/base/PluginInitializer.java +++ b/src/main/java/de/pickshadow/plugin/base/PluginInitializer.java @@ -18,6 +18,7 @@ */ package de.pickshadow.plugin.base; +import de.pickshadow.plugin.classes.CommandBase; import de.pickshadow.plugin.classes.logger.LoggerInstanceImpl; import de.pickshadow.plugin.commands.*; import de.pickshadow.plugin.loaders.ConfigLoader; @@ -32,6 +33,9 @@ public class PluginInitializer { // Objects private final LoggerInstanceImpl logger; + // Lists + CommandBase[] commands = new CommandBase[0]; + public PluginInitializer() { logger = ObjHolder.logger.getInstance(getClass()); } @@ -61,16 +65,14 @@ public class PluginInitializer { return "Could not update active spelling language"; } + // Initialize commands + logger.verb("Initializing commands"); + commands = new CommandBase[]{new BroadcastCommand(), new DiscordCommand(), new HomeCommand(), new PluginCommand(), new SystemInformationCommand(), new TrollCommand(), new MsgCommand()}; + // Register commands logger.verb("Registering commands"); try { - new BroadcastCommand().registerCommand(); - new DiscordCommand().registerCommand(); - new HomeCommand().registerCommand(); - new PluginCommand().registerCommand(); - new SystemInformationCommand().registerCommand(); - new TrollCommand().registerCommand(); - new MsgCommand().registerCommand(); + for (CommandBase command : commands) command.registerCommand(); } catch (NullPointerException e) { logger.crash("Could not register plugin commands", e.getStackTrace()); } @@ -92,10 +94,23 @@ public class PluginInitializer { public void uninitialize() { logger.info("Uninitializing PSSP"); + + // Close active hunspell instance logger.verb("Closing Hunspell instance"); ObjHolder.spellingHelper.setActiveLanguage(null); + + // Save player data logger.verb("Saving player data"); for (UUID uuid : ObjHolder.playerDataLoader.getLoadedUUIDs()) ObjHolder.playerDataLoader.savePlayerData(uuid); + + // Unregister commands + logger.verb("Unregistering commands"); + try { + for (CommandBase command : commands) command.unregisterCommand(); + } catch (NullPointerException e) { + logger.crash("Could not unregister plugin commands", e.getStackTrace(), true); + } + logger.info("Uninitialized PSSP"); } }