From 5df1dc2dfb9e1292f67764ce356395fa7f9f2aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Vis=C3=A9e?= Date: Fri, 20 Nov 2015 19:55:19 +0100 Subject: [PATCH] Created plugin listener --- src/main/java/fr/xephi/authme/AuthMe.java | 9 +-- .../authme/listener/AuthMePluginListener.java | 66 +++++++++++++++++++ 2 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 src/main/java/fr/xephi/authme/listener/AuthMePluginListener.java diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index f6804bf1..a4eb6d41 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; +import fr.xephi.authme.listener.*; import org.apache.logging.log4j.LogManager; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -47,13 +48,6 @@ import fr.xephi.authme.datasource.MySQL; import fr.xephi.authme.datasource.SQLite; import fr.xephi.authme.hooks.BungeeCordMessage; import fr.xephi.authme.hooks.EssSpawn; -import fr.xephi.authme.listener.AuthMeBlockListener; -import fr.xephi.authme.listener.AuthMeEntityListener; -import fr.xephi.authme.listener.AuthMeInventoryPacketAdapter; -import fr.xephi.authme.listener.AuthMePlayerListener; -import fr.xephi.authme.listener.AuthMePlayerListener16; -import fr.xephi.authme.listener.AuthMePlayerListener18; -import fr.xephi.authme.listener.AuthMeServerListener; import fr.xephi.authme.modules.ModuleManager; import fr.xephi.authme.process.Management; import fr.xephi.authme.settings.Messages; @@ -335,6 +329,7 @@ public class AuthMe extends JavaPlugin { pm.registerEvents(new AuthMePlayerListener18(this), this); } catch (ClassNotFoundException ignore) { } + pm.registerEvents(new AuthMePluginListener(this), this); pm.registerEvents(new AuthMeBlockListener(this), this); pm.registerEvents(new AuthMeEntityListener(this), this); pm.registerEvents(new AuthMeServerListener(this), this); diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePluginListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePluginListener.java new file mode 100644 index 00000000..dc5aff51 --- /dev/null +++ b/src/main/java/fr/xephi/authme/listener/AuthMePluginListener.java @@ -0,0 +1,66 @@ +package fr.xephi.authme.listener; + +import fr.xephi.authme.AuthMe; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.plugin.Plugin; + +import java.util.List; + +/** + * Created by Tim on 20-11-2015. + */ +public class AuthMePluginListener implements Listener { + + /** Plugin instance. */ + public AuthMe instance; + + /** + * Constructor. + * + * @param instance Main plugin instance. + */ + public AuthMePluginListener(AuthMe instance) { + this.instance = instance; + } + + /** + * Called when a plugin is enabled. + * + * @param event Event reference. + */ + @EventHandler + public void onPluginEnable(PluginEnableEvent event) { + // Call the onPluginEnable method in the permissions manager + Core.getPermissionsManager().onPluginEnable(event); + } + + /** + * Called when a plugin is disabled. + * + * @param event Event reference. + */ + @EventHandler + public void onPluginDisable(PluginDisableEvent event) { + // Get the plugin instance + Plugin plugin = event.getPlugin(); + + // Make sure the plugin instance isn't null + if(plugin == null) + return; + + // Make sure it's not Dungeon Maze itself + if(plugin.equals(DungeonMaze.instance)) + return; + + // Call the onPluginDisable method in the permissions manager + Core.getPermissionsManager().onPluginDisable(event); + + // Check if this plugin is hooked in to Dungeon Maze + if(Core.getApiController().isHooked(plugin)) + // Unhook the plugin from Dungeon Maze and unregister it's API sessions + Core.getApiController().unhookPlugin(plugin); + } +}