Added option to set plugin manually

This commit is contained in:
NichtStudioCode 2021-02-21 15:02:50 +01:00
parent b87177fe83
commit a22e33cf64

@ -17,21 +17,27 @@ public class InvUI implements Listener {
private static InvUI instance;
private final List<Runnable> 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);
}