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!

This commit is contained in:
WildInterloper 2024-03-05 00:59:25 -05:00
parent 4864c236b8
commit cc09b1098b
2 changed files with 26 additions and 1 deletions

View File

@ -6,7 +6,7 @@
<groupId>me.NVus</groupId> <groupId>me.NVus</groupId>
<artifactId>NVus_Prison_Setup</artifactId> <artifactId>NVus_Prison_Setup</artifactId>
<version>0.1.6-SNAPSHOT</version> <version>0.1.9-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>PrisonSetup</name> <name>PrisonSetup</name>

View File

@ -6,6 +6,7 @@ import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.ItemStack; 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 @EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) { public void onPlayerRespawn(PlayerRespawnEvent event) {
Player respawnedPlayer = event.getPlayer(); 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!")); 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!"));
}
} }