diff --git a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java index 5dcaaf4..3e3b687 100644 --- a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java +++ b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java @@ -69,8 +69,13 @@ public class CommandWhitelistBukkit extends JavaPlugin { private void reloadPluginConfig() { File configFile = new File("plugins/CommandWhitelist/config.yml"); - if (configCache == null) - configCache = new ConfigCache(configFile, true, getSLF4JLogger()); + if (configCache == null) { + try { + configCache = new ConfigCache(configFile, true, getSLF4JLogger()); + } catch (NoSuchMethodError e) { + configCache = new ConfigCache(configFile, true, null); + } + } else configCache.reloadConfig(); } @@ -78,9 +83,11 @@ public class CommandWhitelistBukkit extends JavaPlugin { public void reloadPluginConfig(CommandSender sender) { getServer().getScheduler().runTaskAsynchronously(this, () -> { reloadPluginConfig(); - for (Player p : Bukkit.getOnlinePlayers()) { - p.updateCommands(); - } + try { + for (Player p : Bukkit.getOnlinePlayers()) { + p.updateCommands(); + } + } catch (Exception ignored) {} audiences.sender(sender).sendMessage(CWCommand.miniMessage.parse(configCache.prefix + configCache.config_reloaded)); }); } diff --git a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java index c45cf77..9acf14b 100644 --- a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java +++ b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java @@ -132,8 +132,10 @@ public class ConfigCache { if (commands.contains(cmd)) continue; commands.add(cmd); } - - List subCommands = section.getStringList(id + ".subcommands"); + List subCommands = new ArrayList<>(); + for (String subCmd : section.getStringList(id + ".subcommands")) { + subCommands.add(String.valueOf(subCmd)); + } String customCommandDeniedMessage = section.getString(id + ".custom_command_denied_message"); return new CWGroup(id, commands, subCommands, customCommandDeniedMessage); } @@ -148,6 +150,10 @@ public class ConfigCache { } private void warn(String log) { + if (logger == null) { + System.out.println("WARNING: "+log); + return; + } if (logger instanceof org.slf4j.Logger) { ((org.slf4j.Logger) logger).warn(log); return;