diff --git a/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java b/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java index 715a281..d962418 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java @@ -24,14 +24,16 @@ public class SettingsMenu implements Listener { public SettingsMenu(JavaPlugin plugin, ConfigManager configManager) { this.plugin = plugin; this.configManager = configManager; - plugin.getServer().getPluginManager().registerEvents(this, plugin); + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } public void openSettingsMenu(Player player) { - Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "NVus Prison Settings"); + Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "Settings Menu"); + // Retrieve configurations directly using ConfigManager FileConfiguration config = configManager.getConfig("config.yml"); + // Toggle items with dynamic status from config inv.setItem(3, createToggleItem(Material.HOPPER, "Toggle AutoPickup", config.getBoolean("AutoPickup", false))); inv.setItem(4, createToggleItem(Material.LEVER, "Toggle AutoSwitch", config.getBoolean("AutoSwitch", false))); inv.setItem(5, createItem(Material.BOOK, ChatColor.GREEN + "Reload Configs")); @@ -39,10 +41,10 @@ public class SettingsMenu implements Listener { player.openInventory(inv); } - private ItemStack createToggleItem(Material material, String name, boolean enabled) { + private ItemStack createToggleItem(Material material, String name, boolean isEnabled) { ItemStack item = new ItemStack(material); ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(ChatColor.GREEN + name + ": " + (enabled ? ChatColor.BLUE + "Enabled" : ChatColor.RED + "Disabled")); + meta.setDisplayName(ChatColor.GREEN + name + ": " + (isEnabled ? ChatColor.BLUE + "Enabled" : ChatColor.RED + "Disabled")); item.setItemMeta(meta); return item; } @@ -57,46 +59,47 @@ public class SettingsMenu implements Listener { @EventHandler public void onInventoryClick(InventoryClickEvent event) { - if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "Settings Menu")) return; + if (!event.getView().getTitle().equals(ChatColor.DARK_RED + "NVus Prison Settings")) return; event.setCancelled(true); Player player = (Player) event.getWhoClicked(); UUID playerUUID = player.getUniqueId(); + // Implement cooldown check long lastClick = lastClickTime.getOrDefault(playerUUID, 0L); long currentTime = System.currentTimeMillis(); - if (currentTime - lastClick < 500) { // Cooldown of 0.5 seconds - return; - } + if (currentTime - lastClick < 500) return; // 500 ms cooldown lastClickTime.put(playerUUID, currentTime); ItemStack clickedItem = event.getCurrentItem(); if (clickedItem == null || !clickedItem.hasItemMeta()) return; String displayName = clickedItem.getItemMeta().getDisplayName(); + if (displayName.contains("Toggle AutoPickup")) { - toggleOption("AutoPickup", player); + toggleConfigOption(player, "AutoPickup"); } else if (displayName.contains("Toggle AutoSwitch")) { - toggleOption("AutoSwitch", player); + toggleConfigOption(player, "AutoSwitch"); } else if (displayName.contains("Reload Configs")) { reloadConfigs(player); } } - private void toggleOption(String key, Player player) { + private void toggleConfigOption(Player player, String configKey) { FileConfiguration config = configManager.getConfig("config.yml"); - boolean currentValue = config.getBoolean(key, false); - config.set(key, !currentValue); + boolean currentValue = config.getBoolean(configKey, false); + config.set(configKey, !currentValue); configManager.saveConfig("config.yml"); - player.sendMessage(ChatColor.GREEN + key + " " + (!currentValue ? "enabled." : "disabled.")); - openSettingsMenu(player); // Refresh the menu + player.sendMessage(ChatColor.GREEN + configKey + " " + (!currentValue ? "enabled" : "disabled")); + openSettingsMenu(player); // Refresh the inventory to reflect the change } private void reloadConfigs(Player player) { configManager.reloadConfig("config.yml"); configManager.reloadConfig("auto_switch.yml"); configManager.reloadConfig("banned_items.yml"); + configManager.saveConfig("config.yml"); // Ensure any changes are saved before reload player.sendMessage(ChatColor.GREEN + "Configuration files reloaded."); - openSettingsMenu(player); // Refresh the menu + openSettingsMenu(player); // Refresh the inventory } }