@EventHandler(priority = EventPriority.HIGHEST) private void onDeath(PlayerDeathEvent evt) { evt.getDrops().clear(); final Player player = evt.getEntity().getPlayer(); final PlayerDataClass playerData = plugin.getPlayerHandler().findPlayer(player.getDisplayName()); if (playerData != null) { setUnscoped(player, playerData); plugin.getPlayerLocationListener().removePlayerFromPoint(playerData); if (evt.getEntity().getKiller() != null) { Player killer = evt.getEntity().getKiller(); PlayerDataClass killerData = plugin.getPlayerHandler().findPlayer(killer.getDisplayName()); playerData.setDeaths(playerData.getDeaths() + 1); if (killer != null) { killerData.setKills(killerData.getKills() + 1); } } if (playerData.getType().equals("spy") && playerData.getDisguised() != null) { playerData.setDisguised(null); } if (player.isDead()) { player.setHealth(20); } plugin .getServer() .getScheduler() .scheduleSyncDelayedTask( plugin, new Runnable() { public void run() { if (plugin.getPlayerHandler().findPlayer(player.getDisplayName()) != null) { plugin.getLogger().info("Respawning: " + player.getName()); plugin.getPlayerHandler().spawnPlayer(playerData); TagAPI.refreshPlayer(player); } } }, 5L); } else { plugin.getGameManager().teleportToSpawn(player); } }