private fun onEntityCombat(event: EntityDamageByEntityEvent) { val damager = event.damager val attacker = if (damager is Player) damager else { if (damager is Projectile && damager.shooter is Player) damager.shooter as Player else return } val victim = event.entity if (victim !is Player) return val pvpEvent = PlayerPVPEvent(attacker, victim, event.cause, event.damage) Events.fireEvent(pvpEvent) if (pvpEvent.isCancelled) return victim.lastDamageCause = pvpEvent } private fun onPlayerPVP(event: PlayerPVPEvent) { val attacker = event.damager if (!enabled.contains(attacker)) { messageHandler.sendMessage(attacker, "PVP.ATTACKER_DISABLED") event.isCancelled = true return } val victim = event.entity if (!enabled.contains(victim)) { messageHandler.sendMessage(attacker, "PVP.VICTIM_DISABLED") event.isCancelled = true return } } private fun onGraveCreate(event: GraveCreateEvent) { if (event.player.lastDamageCause !is PlayerPVPEvent) return event.isCancelled = true }