From 2b2ee7e42cb4586119f6e6211b4713e3536e216c Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 3 May 2019 22:29:03 -0700 Subject: [PATCH] Saves command rank settings to bentobox config.yml https://github.com/BentoBoxWorld/BentoBox/issues/657 --- src/main/java/world/bentobox/bentobox/BentoBox.java | 9 +++++++-- src/main/java/world/bentobox/bentobox/Settings.java | 2 +- .../flags/clicklisteners/CommandCycleClick.java | 5 ++++- .../flags/clicklisteners/CommandRankClickListener.java | 8 ++++---- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/BentoBox.java b/src/main/java/world/bentobox/bentobox/BentoBox.java index 56653f11b..8855dfdc4 100644 --- a/src/main/java/world/bentobox/bentobox/BentoBox.java +++ b/src/main/java/world/bentobox/bentobox/BentoBox.java @@ -110,7 +110,7 @@ public class BentoBox extends JavaPlugin { return; } // Saving the config now. - new Config<>(this, Settings.class).saveConfigObject(settings); + saveConfig(); // Start Database managers playersManager = new PlayersManager(this); @@ -154,7 +154,7 @@ public class BentoBox extends JavaPlugin { addonsManager.loadAddons(); // Enable addons addonsManager.enableAddons(); - + // Register default gamemode placeholders addonsManager.getGameModeAddons().forEach(placeholdersManager::registerDefaultPlaceholders); @@ -333,6 +333,11 @@ public class BentoBox extends JavaPlugin { return true; } + @Override + public void saveConfig() { + if (settings != null) new Config<>(this, Settings.class).saveConfigObject(settings); + } + /** * @return the notifier */ diff --git a/src/main/java/world/bentobox/bentobox/Settings.java b/src/main/java/world/bentobox/bentobox/Settings.java index d28e7eee0..addc320be 100644 --- a/src/main/java/world/bentobox/bentobox/Settings.java +++ b/src/main/java/world/bentobox/bentobox/Settings.java @@ -74,7 +74,7 @@ public class Settings implements DataObject { private Set fakePlayers = new HashSet<>(); @ConfigComment("Rank required to use a command. e.g., use the invite command. Default is owner rank is required.") - @ConfigEntry(path = "general.rank-command", experimental = true) + @ConfigEntry(path = "general.rank-command") private Map rankCommand = new HashMap<>(); @ConfigEntry(path = "panel.close-on-click-outside") diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandCycleClick.java b/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandCycleClick.java index b04b042ee..b9873f636 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandCycleClick.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandCycleClick.java @@ -1,5 +1,5 @@ /** - * + * */ package world.bentobox.bentobox.listeners.flags.clicklisteners; @@ -57,6 +57,9 @@ public class CommandCycleClick implements ClickHandler { } // Apply change to panel panel.getInventory().setItem(slot, commandRankClickListener.getPanelItem(command, user).getItem()); + // Save config + plugin.saveConfig(); + } else { user.getPlayer().playSound(user.getLocation(), Sound.BLOCK_METAL_HIT, 1F, 1F); } diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandRankClickListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandRankClickListener.java index dc4f0081b..f1eb45a77 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandRankClickListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandRankClickListener.java @@ -1,5 +1,5 @@ /** - * + * */ package world.bentobox.bentobox.listeners.flags.clicklisteners; @@ -30,7 +30,7 @@ import world.bentobox.bentobox.util.Util; * */ public class CommandRankClickListener implements ClickHandler { - + private BentoBox plugin = BentoBox.getInstance(); /* (non-Javadoc) @@ -107,7 +107,7 @@ public class CommandRankClickListener implements ClickHandler { List result = new ArrayList<>(); plugin.getCommandsManager().getCommands().values().stream() .filter(c -> c.getWorld() != null && c.getWorld().equals(world)) - .forEach(c -> result.addAll(getCmdRecursively("/", c))); + .forEach(c -> result.addAll(getCmdRecursively("/", c))); if (result.size() > 49) { Bukkit.getLogger().severe("Number of rank setting commands is too big for GUI"); result.subList(49, result.size()).clear(); @@ -127,7 +127,7 @@ public class CommandRankClickListener implements ClickHandler { if (cc.isConfigurableRankCommand()) { result.add(newLabel); } - cc.getSubCommands().values().forEach(s -> result.addAll(getCmdRecursively(newLabel + " ", s))); + cc.getSubCommands().values().forEach(s -> result.addAll(getCmdRecursively(newLabel + " ", s))); return result; }