From cc09b1098b842db08f5bab93728e20ea53c2bb66 Mon Sep 17 00:00:00 2001 From: WildInterloper <156627888+WildInterloper@users.noreply.github.com> Date: Tue, 5 Mar 2024 00:59:25 -0500 Subject: [PATCH] Added PlayerDeath listener which checks permissions if dead player is a prisoner and if they are it will destroy their equipped prisoner armor instead of dropping it to the ground! --- pom.xml | 2 +- .../Listeners/PlayerSpawn.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0321a77..68edb41 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.NVus NVus_Prison_Setup - 0.1.6-SNAPSHOT + 0.1.9-SNAPSHOT jar PrisonSetup diff --git a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerSpawn.java b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerSpawn.java index 310e58b..7fe876a 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerSpawn.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerSpawn.java @@ -6,6 +6,7 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.inventory.ItemStack; @@ -24,6 +25,17 @@ public class PlayerSpawn implements Listener { } } + @EventHandler + public void onPlayerDeath(PlayerDeathEvent event) { + Player deadPlayer = event.getEntity(); + + // Check if the player has the permission + if (deadPlayer.hasPermission("nvus.prisoner")) { + // Destroy default prisoner armor + destroyDefaultPrisonerArmor(deadPlayer); + } + } + @EventHandler public void onPlayerRespawn(PlayerRespawnEvent event) { Player respawnedPlayer = event.getPlayer(); @@ -65,4 +77,17 @@ public class PlayerSpawn implements Listener { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6&lYou're a prisoner! &6You've been given the default prisoner armor!")); } + + // Destroy armor upon death etc. + private void destroyDefaultPrisonerArmor(Player player) { + // Loop through the armor slots and remove any armor pieces + for (ItemStack armor : player.getInventory().getArmorContents()) { + if (armor != null && armor.getType() != Material.AIR) { + player.getInventory().remove(armor); + } + } + + // Using this as a debug/check, will comment out later! + player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6&lYour default prisoner armor has been destroyed!")); + } }