package com.github.jamesnorris.ablockalypse.event.bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import com.github.jamesnorris.ablockalypse.Ablockalypse; import com.github.jamesnorris.ablockalypse.DataContainer; import com.github.jamesnorris.ablockalypse.aspect.Game; import com.github.jamesnorris.ablockalypse.aspect.ZAPlayer; import com.github.jamesnorris.ablockalypse.enumerated.PlayerStatus; public class PlayerDeath implements Listener { private DataContainer data = Ablockalypse.getData(); /* Called when a player is killed. * * Used for respawning the player after the current level. */ @EventHandler(priority = EventPriority.HIGHEST) public void PDE(PlayerDeathEvent event) {// RespawnThread is activated by PlayerRespawn.java Player p = event.getEntity(); if (data.isZAPlayer(p)) { event.getDrops().clear(); event.setKeepLevel(true); ZAPlayer zap = data.getZAPlayer(p); zap.setStatus(PlayerStatus.LIMBO); Game zag = zap.getGame(); zap.clearPerks();// remove perks if (zag.getRemainingPlayers().size() > 0) { if (zap.isInLastStand()) { zap.toggleLastStand(); } } else { zag.end(false); } } } }