diff --git a/assets/plugin_menu.png b/assets/plugin_menu.png
new file mode 100644
index 0000000..96d9e2a
Binary files /dev/null and b/assets/plugin_menu.png differ
diff --git a/pom.xml b/pom.xml
index 9909dea..9190af2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.NVus
NVus_Prison_Setup
- 0.6.1
+ 0.6.3
jar
NVus_PrisonSetup
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
new file mode 100644
index 0000000..afbe5dc
--- /dev/null
+++ b/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java
@@ -0,0 +1,73 @@
+package me.nvus.nvus_prison_setup.Configs;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class SettingsMenu implements Listener {
+ private final JavaPlugin plugin;
+ private final ConfigManager configManager;
+
+ public SettingsMenu(JavaPlugin plugin, ConfigManager configManager) {
+ this.plugin = plugin;
+ this.configManager = configManager;
+ plugin.getServer().getPluginManager().registerEvents(this, plugin);
+ }
+
+ public void openSettingsMenu(Player player) {
+ Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "NVus Prison Settings");
+
+ // Toggle AutoPickup
+ ItemStack toggleAutoPickup = new ItemStack(Material.HOPPER);
+ ItemMeta metaAutoPickup = toggleAutoPickup.getItemMeta();
+ metaAutoPickup.setDisplayName(ChatColor.GREEN + "Toggle AutoPickup");
+ toggleAutoPickup.setItemMeta(metaAutoPickup);
+ inv.setItem(3, toggleAutoPickup);
+
+ // Toggle AutoSwitch
+ ItemStack toggleAutoSwitch = new ItemStack(Material.LEVER);
+ ItemMeta metaAutoSwitch = toggleAutoSwitch.getItemMeta();
+ metaAutoSwitch.setDisplayName(ChatColor.GREEN + "Toggle AutoSwitch");
+ toggleAutoSwitch.setItemMeta(metaAutoSwitch);
+ inv.setItem(4, toggleAutoSwitch);
+
+ // Reload Configurations
+ ItemStack reloadConfigs = new ItemStack(Material.BOOK);
+ ItemMeta metaReloadConfigs = reloadConfigs.getItemMeta();
+ metaReloadConfigs.setDisplayName(ChatColor.GREEN + "Reload Configs");
+ reloadConfigs.setItemMeta(metaReloadConfigs);
+ inv.setItem(5, reloadConfigs);
+
+ player.openInventory(inv);
+ }
+
+ @EventHandler
+ public void onInventoryClick(InventoryClickEvent event) {
+ if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "Settings Menu")) return;
+ event.setCancelled(true);
+
+ Player player = (Player) event.getWhoClicked();
+ ItemStack clickedItem = event.getCurrentItem();
+ if (clickedItem == null || !clickedItem.hasItemMeta()) return;
+
+ String displayName = clickedItem.getItemMeta().getDisplayName();
+ if (displayName.equals(ChatColor.GREEN + "Toggle AutoPickup")) {
+ // Toggle AutoPickup logic here
+ } else if (displayName.equals(ChatColor.GREEN + "Toggle AutoSwitch")) {
+ // Toggle AutoSwitch logic here
+ } else if (displayName.equals(ChatColor.GREEN + "Reload Configs")) {
+ configManager.reloadConfig("config.yml");
+ configManager.reloadConfig("auto_switch.yml");
+ configManager.reloadConfig("banned_items.yml");
+ player.sendMessage(ChatColor.GREEN + "Configuration files reloaded.");
+ }
+ }
+}
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Listeners/CommandListener.java b/src/main/java/me/nvus/nvus_prison_setup/Listeners/CommandListener.java
index 6d1d36d..02a5b14 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Listeners/CommandListener.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Listeners/CommandListener.java
@@ -1,6 +1,7 @@
package me.nvus.nvus_prison_setup.Listeners;
import me.nvus.nvus_prison_setup.Configs.ConfigManager;
+import me.nvus.nvus_prison_setup.Configs.SettingsMenu;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -27,7 +28,7 @@ public class CommandListener implements CommandExecutor {
}
if (args.length == 0) {
- sender.sendMessage(ChatColor.RED + "Usage: /nvus [arguments]");
+ sender.sendMessage(ChatColor.RED + "Usage: /nvus [arguments]");
return true;
}
@@ -38,6 +39,14 @@ public class CommandListener implements CommandExecutor {
case "version":
handleVersionCommand(sender);
break;
+ case "menu":
+ if (!(sender instanceof Player)) {
+ sender.sendMessage(ChatColor.RED + "This command can only be used by players.");
+ return true;
+ }
+ Player player = (Player) sender;
+ new SettingsMenu(plugin, configManager).openSettingsMenu(player);
+ break;
case "autopickup":
if (args.length < 2) {
sender.sendMessage(ChatColor.RED + "Usage: /nvus autopickup ");
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 0560f88..02cf968 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -4,11 +4,13 @@
# www.FNGnation.net #
# Discord: FNGnation.net/discord #
#======================================================================================#
-# Remember to give all prisoner ranks/groups the permission ' nvus.prisoner ' and negate that permission for any
+# Remember to give prisoner ranks/groups the permission ' nvus.prisoner ' and negate that permission for any
# players that are not or no longer considered a prisoner.
# Should prisoners auto pickup blocks they have mined?
+# Use /nvus autopickup true|false to toggle this in-game! (Requires permission: nvus.admin)
AutoPickup: true
# Should prisoners be able to auto switch to the correct tool for whatever they are mining?
#i.e. If hitting dirt/clay with a pickaxe, they will auto switch to a shovel (if in their quickbar)
+# Use /nvus autoswitch true|false to toggle this in-game! (Requires permission: nvus.admin)
AutoSwitch: true
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 78a9013..08505a2 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -8,4 +8,5 @@ website: https://FNGnation.net
commands:
nvus:
description: Base command for NVus Prison Setup
- usage: / [arguments]
+ usage: / [arguments]
+ aliases: [nvusmenu]