diff --git a/pom.xml b/pom.xml index d191cb3..9909dea 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.NVus NVus_Prison_Setup - 0.6.0 + 0.6.1 jar NVus_PrisonSetup 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 new file mode 100644 index 0000000..6d1d36d --- /dev/null +++ b/src/main/java/me/nvus/nvus_prison_setup/Listeners/CommandListener.java @@ -0,0 +1,81 @@ +package me.nvus.nvus_prison_setup.Listeners; + +import me.nvus.nvus_prison_setup.Configs.ConfigManager; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +public class CommandListener implements CommandExecutor { + private final JavaPlugin plugin; + private final ConfigManager configManager; + + public CommandListener(JavaPlugin plugin, ConfigManager configManager) { + this.plugin = plugin; + this.configManager = configManager; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + // Check if the sender has the required permission + if (!sender.hasPermission("nvus.admin")) { + sender.sendMessage(ChatColor.RED + "You do not have permission to use this command."); + return true; + } + + if (args.length == 0) { + sender.sendMessage(ChatColor.RED + "Usage: /nvus [arguments]"); + return true; + } + + switch (args[0].toLowerCase()) { + case "reload": + handleReloadCommand(sender); + break; + case "version": + handleVersionCommand(sender); + break; + case "autopickup": + if (args.length < 2) { + sender.sendMessage(ChatColor.RED + "Usage: /nvus autopickup "); + return true; + } + handleToggleConfigCommand(sender, "AutoPickup", args[1]); + break; + case "autoswitch": + if (args.length < 2) { + sender.sendMessage(ChatColor.RED + "Usage: /nvus autoswitch "); + return true; + } + handleToggleConfigCommand(sender, "AutoSwitch", args[1]); + break; + default: + sender.sendMessage(ChatColor.RED + "Invalid command. Use /nvus for help."); + return true; + } + + return true; + } + + private void handleReloadCommand(CommandSender sender) { + configManager.reloadConfig("config.yml"); + configManager.reloadConfig("auto_switch.yml"); + configManager.reloadConfig("banned_items.yml"); + sender.sendMessage(ChatColor.GREEN + "Configuration files reloaded."); + } + + private void handleVersionCommand(CommandSender sender) { + sender.sendMessage(ChatColor.GREEN + "Plugin version: " + plugin.getDescription().getVersion()); + } + + private void handleToggleConfigCommand(CommandSender sender, String key, String value) { + boolean boolValue = Boolean.parseBoolean(value); + FileConfiguration config = configManager.getConfig("config.yml"); + config.set(key, boolValue); + configManager.saveConfig("config.yml"); + sender.sendMessage(ChatColor.GREEN + key + " set to " + boolValue + "."); + } +} diff --git a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java index 8f42abf..2258438 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java +++ b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java @@ -1,6 +1,7 @@ package me.nvus.nvus_prison_setup; import me.nvus.nvus_prison_setup.Configs.ConfigManager; +import me.nvus.nvus_prison_setup.Listeners.CommandListener; import me.nvus.nvus_prison_setup.Listeners.PlayerArmor; import me.nvus.nvus_prison_setup.Listeners.PlayerItems; import me.nvus.nvus_prison_setup.Listeners.PlayerSpawn; @@ -29,6 +30,8 @@ public final class PrisonSetup extends JavaPlugin { getServer().getPluginManager().registerEvents(new PlayerItems(configManager), this); getServer().getPluginManager().registerEvents(new BlockListener(this), this); getServer().getPluginManager().registerEvents(new ToolSwitchListener(configManager), this); + this.getCommand("nvus").setExecutor(new CommandListener(this, configManager)); + getLogger().info(ChatColor.translateAlternateColorCodes('&',"&a&lNVus Prison Setup has been successfully enabled!")); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 5642815..78a9013 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,3 +5,7 @@ api-version: '1.20' prefix: NVus Prison authors: [never2nv] website: https://FNGnation.net +commands: + nvus: + description: Base command for NVus Prison Setup + usage: / [arguments]