v0.6.1 - Added logic to settings menu. Implemented ConfigManager within it as well. Registered it with PrisonSetup main class was required.
This commit is contained in:
parent
6ba21eaf68
commit
0ae8a88521
|
@ -3,6 +3,7 @@ package me.nvus.nvus_prison_setup.Configs;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
@ -13,61 +14,74 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
public class SettingsMenu implements Listener {
|
public class SettingsMenu implements Listener {
|
||||||
private final JavaPlugin plugin;
|
|
||||||
private final ConfigManager configManager;
|
private final ConfigManager configManager;
|
||||||
|
|
||||||
public SettingsMenu(JavaPlugin plugin, ConfigManager configManager) {
|
public SettingsMenu(JavaPlugin plugin, ConfigManager configManager) {
|
||||||
this.plugin = plugin;
|
|
||||||
this.configManager = configManager;
|
this.configManager = configManager;
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openSettingsMenu(Player player) {
|
public void openSettingsMenu(Player player) {
|
||||||
Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "NVus Prison Settings");
|
Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "Settings Menu");
|
||||||
|
|
||||||
// Toggle AutoPickup
|
// Dynamically set the display based on current config settings
|
||||||
ItemStack toggleAutoPickup = new ItemStack(Material.HOPPER);
|
FileConfiguration config = configManager.getConfig("config.yml");
|
||||||
ItemMeta metaAutoPickup = toggleAutoPickup.getItemMeta();
|
|
||||||
metaAutoPickup.setDisplayName(ChatColor.GREEN + "Toggle AutoPickup");
|
// AutoPickup Toggle Item
|
||||||
toggleAutoPickup.setItemMeta(metaAutoPickup);
|
boolean autopickup = config.getBoolean("AutoPickup", false);
|
||||||
|
ItemStack toggleAutoPickup = createToggleItem(Material.HOPPER, "Toggle AutoPickup", autopickup);
|
||||||
inv.setItem(3, toggleAutoPickup);
|
inv.setItem(3, toggleAutoPickup);
|
||||||
|
|
||||||
// Toggle AutoSwitch
|
// AutoSwitch Toggle Item
|
||||||
ItemStack toggleAutoSwitch = new ItemStack(Material.LEVER);
|
boolean autoswitch = config.getBoolean("AutoSwitch", false);
|
||||||
ItemMeta metaAutoSwitch = toggleAutoSwitch.getItemMeta();
|
ItemStack toggleAutoSwitch = createToggleItem(Material.LEVER, "Toggle AutoSwitch", autoswitch);
|
||||||
metaAutoSwitch.setDisplayName(ChatColor.GREEN + "Toggle AutoSwitch");
|
|
||||||
toggleAutoSwitch.setItemMeta(metaAutoSwitch);
|
|
||||||
inv.setItem(4, toggleAutoSwitch);
|
inv.setItem(4, toggleAutoSwitch);
|
||||||
|
|
||||||
// Reload Configurations
|
// Reload Configurations Item
|
||||||
ItemStack reloadConfigs = new ItemStack(Material.BOOK);
|
ItemStack reloadConfigs = new ItemStack(Material.BOOK);
|
||||||
ItemMeta metaReloadConfigs = reloadConfigs.getItemMeta();
|
ItemMeta reloadMeta = reloadConfigs.getItemMeta();
|
||||||
metaReloadConfigs.setDisplayName(ChatColor.GREEN + "Reload Configs");
|
reloadMeta.setDisplayName(ChatColor.GREEN + "Reload Configs");
|
||||||
reloadConfigs.setItemMeta(metaReloadConfigs);
|
reloadConfigs.setItemMeta(reloadMeta);
|
||||||
inv.setItem(5, reloadConfigs);
|
inv.setItem(5, reloadConfigs);
|
||||||
|
|
||||||
player.openInventory(inv);
|
player.openInventory(inv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ItemStack createToggleItem(Material material, String name, boolean enabled) {
|
||||||
|
ItemStack item = new ItemStack(material);
|
||||||
|
ItemMeta meta = item.getItemMeta();
|
||||||
|
meta.setDisplayName(ChatColor.GREEN + name + ": " + (enabled ? ChatColor.BLUE + "Enabled" : ChatColor.RED + "Disabled"));
|
||||||
|
item.setItemMeta(meta);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onInventoryClick(InventoryClickEvent event) {
|
public void onInventoryClick(InventoryClickEvent event) {
|
||||||
if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "Settings Menu")) return;
|
if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "Settings Menu")) return;
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
ItemStack clickedItem = event.getCurrentItem();
|
ItemStack clickedItem = event.getCurrentItem();
|
||||||
if (clickedItem == null || !clickedItem.hasItemMeta()) return;
|
if (clickedItem == null || !clickedItem.hasItemMeta()) return;
|
||||||
|
|
||||||
String displayName = clickedItem.getItemMeta().getDisplayName();
|
String displayName = clickedItem.getItemMeta().getDisplayName();
|
||||||
if (displayName.equals(ChatColor.GREEN + "Toggle AutoPickup")) {
|
FileConfiguration config = configManager.getConfig("config.yml");
|
||||||
// Toggle AutoPickup logic here
|
|
||||||
} else if (displayName.equals(ChatColor.GREEN + "Toggle AutoSwitch")) {
|
if (displayName.contains("Toggle AutoPickup")) {
|
||||||
// Toggle AutoSwitch logic here
|
boolean currentValue = config.getBoolean("AutoPickup", false);
|
||||||
} else if (displayName.equals(ChatColor.GREEN + "Reload Configs")) {
|
config.set("AutoPickup", !currentValue);
|
||||||
|
player.sendMessage(ChatColor.GREEN + "AutoPickup " + (currentValue ? "disabled" : "enabled"));
|
||||||
|
} else if (displayName.contains("Toggle AutoSwitch")) {
|
||||||
|
boolean currentValue = config.getBoolean("AutoSwitch", false);
|
||||||
|
config.set("AutoSwitch", !currentValue);
|
||||||
|
player.sendMessage(ChatColor.GREEN + "AutoSwitch " + (currentValue ? "disabled" : "enabled"));
|
||||||
|
} else if (displayName.contains("Reload Configs")) {
|
||||||
configManager.reloadConfig("config.yml");
|
configManager.reloadConfig("config.yml");
|
||||||
configManager.reloadConfig("auto_switch.yml");
|
configManager.reloadConfig("auto_switch.yml");
|
||||||
configManager.reloadConfig("banned_items.yml");
|
configManager.reloadConfig("banned_items.yml");
|
||||||
player.sendMessage(ChatColor.GREEN + "Configuration files reloaded.");
|
player.sendMessage(ChatColor.GREEN + "Configuration files reloaded.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configManager.saveConfig("config.yml");
|
||||||
|
player.closeInventory(); // Optional: Close the inventory after interaction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class CommandListener implements CommandExecutor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
// Check if the sender has the required permission
|
|
||||||
if (!sender.hasPermission("nvus.admin")) {
|
if (!sender.hasPermission("nvus.admin")) {
|
||||||
sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
|
sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -2,6 +2,7 @@ package me.nvus.nvus_prison_setup;
|
||||||
|
|
||||||
import me.nvus.nvus_prison_setup.Configs.ConfigManager;
|
import me.nvus.nvus_prison_setup.Configs.ConfigManager;
|
||||||
import me.nvus.nvus_prison_setup.Listeners.CommandListener;
|
import me.nvus.nvus_prison_setup.Listeners.CommandListener;
|
||||||
|
import me.nvus.nvus_prison_setup.Configs.SettingsMenu;
|
||||||
import me.nvus.nvus_prison_setup.Listeners.PlayerArmor;
|
import me.nvus.nvus_prison_setup.Listeners.PlayerArmor;
|
||||||
import me.nvus.nvus_prison_setup.Listeners.PlayerItems;
|
import me.nvus.nvus_prison_setup.Listeners.PlayerItems;
|
||||||
import me.nvus.nvus_prison_setup.Listeners.PlayerSpawn;
|
import me.nvus.nvus_prison_setup.Listeners.PlayerSpawn;
|
||||||
|
@ -31,6 +32,7 @@ public final class PrisonSetup extends JavaPlugin {
|
||||||
getServer().getPluginManager().registerEvents(new BlockListener(this), this);
|
getServer().getPluginManager().registerEvents(new BlockListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new ToolSwitchListener(configManager), this);
|
getServer().getPluginManager().registerEvents(new ToolSwitchListener(configManager), this);
|
||||||
this.getCommand("nvus").setExecutor(new CommandListener(this, configManager));
|
this.getCommand("nvus").setExecutor(new CommandListener(this, configManager));
|
||||||
|
new SettingsMenu(this, configManager);
|
||||||
|
|
||||||
|
|
||||||
getLogger().info(ChatColor.translateAlternateColorCodes('&',"&a&lNVus Prison Setup has been successfully enabled!"));
|
getLogger().info(ChatColor.translateAlternateColorCodes('&',"&a&lNVus Prison Setup has been successfully enabled!"));
|
||||||
|
|
Loading…
Reference in New Issue