From d04de3159cab41e34b2073919a6c3affe67ba086 Mon Sep 17 00:00:00 2001 From: jascotty2 Date: Mon, 2 Sep 2019 07:49:19 -0500 Subject: [PATCH] fix possible settings NPE --- src/main/java/com/songoda/core/SongodaPlugin.java | 11 +++++++++-- .../core/configuration/editor/PluginConfigGui.java | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/songoda/core/SongodaPlugin.java b/src/main/java/com/songoda/core/SongodaPlugin.java index aeed3a5e..931aef68 100644 --- a/src/main/java/com/songoda/core/SongodaPlugin.java +++ b/src/main/java/com/songoda/core/SongodaPlugin.java @@ -86,12 +86,14 @@ public abstract class SongodaPlugin extends JavaPlugin { locale = Locale.loadDefaultLocale(this, "en_US"); // plugin setup onPluginEnable(); + if(emergencyStop) { + console.sendMessage(ChatColor.RED + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); + return; + } // Start Metrics Metrics.start(this); } catch (Throwable t) { getLogger().log(Level.SEVERE, "Unexpected error while loading " + getDescription().getName() + ": Disabling plugin!", t); - emergencyStop = true; - setEnabled(false); console.sendMessage(ChatColor.RED + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); return; } @@ -99,6 +101,11 @@ public abstract class SongodaPlugin extends JavaPlugin { console.sendMessage(ChatColor.GREEN + "============================="); } + protected void emergencyStop() { + emergencyStop = true; + Bukkit.getPluginManager().disablePlugin(this); + } + @Override public final void onDisable() { if (emergencyStop) { diff --git a/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java b/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java index 8256e1c4..bccaac59 100644 --- a/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java +++ b/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java @@ -60,7 +60,7 @@ public class PluginConfigGui extends SimplePagedGui { try { // can we also grab extra config from this mysterious plugin? Object more = plugin.getClass().getDeclaredMethod("getExtraConfig").invoke(plugin); - if (more instanceof List && !((List) more).isEmpty()) { + if (more != null && more instanceof List && !((List) more).isEmpty()) { try { // if we have the getExtraConfig function, we should also be able to get the file Method method_Config_getFile = ((List) more).get(0).getClass().getDeclaredMethod("getFile");