@EventHandler(priority = EventPriority.HIGHEST) private void onPlayerDamage(EntityDamageByEntityEvent evt) { if (evt.getEntity() instanceof Player && evt.getDamager() instanceof Player) { Player player = (Player) evt.getEntity(); PlayerDataClass playerData = plugin.getPlayerHandler().findPlayer(player.getDisplayName()); Player attacker = (Player) evt.getDamager(); PlayerDataClass attackerData = plugin.getPlayerHandler().findPlayer(attacker.getDisplayName()); if (attackerData != null && playerData != null) { if (attackerData.getTeam() == playerData.getTeam()) { evt.setCancelled(true); return; } if (attackerData.getType().equals("spy")) { plugin.getLogger().info("Logged knife stab"); if (plugin .getUtilities() .checkPlayerInCone( player, attacker.getLocation(), 4, 80, (int) attacker.getLocation().getYaw())) { plugin.getLogger().info(attackerData.getName() + " behind " + playerData.getName()); } } } else { evt.setCancelled(true); } } if (evt.getDamager() instanceof Arrow) { Arrow arrow = (Arrow) evt.getDamager(); Player attacker = (Player) arrow.getShooter(); PlayerDataClass attackerData = plugin.getPlayerHandler().findPlayer(attacker.getDisplayName()); Player player = (Player) evt.getEntity(); PlayerDataClass playerData = plugin.getPlayerHandler().findPlayer(player.getDisplayName()); if (attackerData != null && playerData != null) { if (attackerData.getTeam() == playerData.getTeam()) { evt.setCancelled(true); } } } }