From a22e33cf64134f71c99619099c27ac44047fb24f Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Sun, 21 Feb 2021 15:02:50 +0100 Subject: [PATCH] Added option to set plugin manually --- src/main/java/de/studiocode/invui/InvUI.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/studiocode/invui/InvUI.java b/src/main/java/de/studiocode/invui/InvUI.java index c01496a..8b64b45 100644 --- a/src/main/java/de/studiocode/invui/InvUI.java +++ b/src/main/java/de/studiocode/invui/InvUI.java @@ -17,21 +17,27 @@ public class InvUI implements Listener { private static InvUI instance; private final List disableHandlers = new ArrayList<>(); - private final Plugin plugin; - - public InvUI() { - plugin = ReflectionUtils.getFieldValue(PLUGIN_CLASS_LOADER_PLUGIN_FIELD, getClass().getClassLoader()); - Bukkit.getPluginManager().registerEvents(this, plugin); - } + private Plugin plugin; public static InvUI getInstance() { return instance == null ? instance = new InvUI() : instance; } public Plugin getPlugin() { + if (plugin == null) { + System.out.println("[InvUI] Retrieving plugin from PluginClassLoader... This may cause issues!"); + setPlugin(ReflectionUtils.getFieldValue(PLUGIN_CLASS_LOADER_PLUGIN_FIELD, getClass().getClassLoader())); + } return plugin; } + public void setPlugin(Plugin plugin) { + if (this.plugin != null) + throw new IllegalStateException("The plugin is already set!"); + this.plugin = plugin; + Bukkit.getPluginManager().registerEvents(this, plugin); + } + public void addDisableHandler(Runnable runnable) { disableHandlers.add(runnable); }