diff --git a/README.MD b/README.MD index 6436934..b878c96 100644 --- a/README.MD +++ b/README.MD @@ -2,5 +2,7 @@ A useful plugin for Minecraft prison servers.\ **PLANNED FEATURES, SO FAR** - Set newly joined & respawned players in orange leather armor. - Prevent prisoners from equipping new armor and unequipping the prisoner orange leather armor. -- Give newly joined & respawned prisoners with the default prisoner tools. -- Main permission to tell a player is a prisoner or not is **nvus.prisoner** \ No newline at end of file +- Prevent prisoners from equipping or moving banned items into their QUICKBAR. +- Banned items can be configured in a banned_items.yml file within the plugin directory (PrisonSetup/banned_items.yml) +- Give newly joined & respawned prisoners the default prisoner tools? Maybe, not sure. Might just use a kit plugin for this? +- Main permission to tell a player is a prisoner or not is **nvus.prisoner** this permission should be **NEGATED** for any players that are not or no longer a prisoner, just in case. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9c83e2b..59012ab 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.NVus NVus_Prison_Setup - 0.2.3-SNAPSHOT + 0.3.1-SNAPSHOT jar PrisonSetup diff --git a/src/main/java/me/nvus/nvus_prison_setup/Configs/BannedItemsConfig.java b/src/main/java/me/nvus/nvus_prison_setup/Configs/BannedItemsConfig.java index 1b5af66..c5c3477 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Configs/BannedItemsConfig.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Configs/BannedItemsConfig.java @@ -48,9 +48,11 @@ public class BannedItemsConfig { } if (!configFile.exists()) { plugin.saveResource("banned_items.yml", false); + plugin.getLogger().info("banned_items.yml has been created."); } } + public List getBannedItems() { return getConfig().getStringList("BannedItems"); } diff --git a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerItems.java b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerItems.java index d0c489f..d01dcd5 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerItems.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerItems.java @@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerItemHeldEvent; import org.bukkit.inventory.ItemStack; @@ -30,24 +31,24 @@ public class PlayerItems implements Listener { if (item != null && isBannedItem(item.getType())) { if (player.hasPermission("nvus.prisoner")) { event.setCancelled(true); - player.sendMessage(ChatColor.RED + "Sorry inmate! You're a prisoner and cannot use this tool!"); + player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&c&lSorry inmate! &cYou're a prisoner and cannot use this tool!")); } } } + @EventHandler(priority = EventPriority.LOWEST) public void onInventoryClick(InventoryClickEvent event) { - if (event.getClickedInventory() != null && event.getClickedInventory().getType() == org.bukkit.event.inventory.InventoryType.PLAYER) { - if (event.getSlotType() == org.bukkit.event.inventory.InventoryType.SlotType.QUICKBAR) { - ItemStack item = event.getCurrentItem(); + Player player = (Player) event.getWhoClicked(); + ItemStack clickedItem = event.getCurrentItem(); - if (item != null && isBannedItem(item.getType())) { - Player player = (Player) event.getWhoClicked(); - if (player.hasPermission("nvus.prisoner")) { - event.setCancelled(true); - player.sendMessage(ChatColor.RED + "Sorry inmate! You're a prisoner and cannot use this tool!"); - } - } + // Check if the clicked item is a banned item + if (clickedItem != null && isBannedItem(clickedItem.getType())) { + // Check if the player is a prisoner + if (player.hasPermission("nvus.prisoner")) { + // Cancel the event to prevent interaction with banned items + event.setCancelled(true); + player.sendMessage(ChatColor.RED + "Sorry inmate! You're a prisoner and cannot use this tool!"); } } } @@ -57,4 +58,37 @@ public class PlayerItems implements Listener { List bannedItems = config.getStringList("BannedItems"); return bannedItems.contains(itemType.toString()); } + + + + + /* + @EventHandler(priority = EventPriority.LOWEST) + public void onInventoryClick(InventoryClickEvent event) { + if (event.getClickedInventory() != null && event.getClickedInventory().getType() == InventoryType.PLAYER) { + if (event.getSlotType() == InventoryType.SlotType.QUICKBAR) { + ItemStack item = event.getCurrentItem(); + Player player = (Player) event.getWhoClicked(); + + // Check if the clicked item is a banned item + if (item != null && isBannedItem(item.getType())) { + // Check if the player is a prisoner + if (player.hasPermission("nvus.prisoner")) { + // Cancel the event to prevent the banned item from being moved to the quickbar + event.setCancelled(true); + player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&c&lSorry inmate! &cYou're a prisoner and cannot use this tool!")); + } + } + } + } + } + + + private boolean isBannedItem(Material itemType) { + FileConfiguration config = plugin.getBannedItemsConfig().getConfig(); + List bannedItems = config.getStringList("BannedItems"); + return bannedItems.contains(itemType.toString()); + } + */ + } diff --git a/src/main/resources/banned_items.yml b/src/main/resources/banned_items.yml index 464626d..a9ad675 100644 --- a/src/main/resources/banned_items.yml +++ b/src/main/resources/banned_items.yml @@ -9,6 +9,6 @@ # Place Item(s) here that prisoners should never be able to equip in their hands or move into their quickbar # Remember to give all prisoner ranks/groups that permission nvus.prisoner and negate that permission for any # players that are not or no longer considered a prisoner. -Banned Items: +BannedItems: - DIAMOND_PICKAXE - NETHERITE_PICKAXE \ No newline at end of file