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!"));
+ }
}