From 64b2396e075888050150b210e473af1fb8ca901b Mon Sep 17 00:00:00 2001 From: fullwall Date: Thu, 5 Dec 2013 23:04:18 +0800 Subject: [PATCH] Fix damage event cancellation --- src/main/java/net/citizensnpcs/EventListen.java | 2 +- src/main/java/net/citizensnpcs/npc/ai/MCTargetStrategy.java | 1 - src/main/java/net/citizensnpcs/util/NMS.java | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/citizensnpcs/EventListen.java b/src/main/java/net/citizensnpcs/EventListen.java index 68e867623..1a6a79174 100644 --- a/src/main/java/net/citizensnpcs/EventListen.java +++ b/src/main/java/net/citizensnpcs/EventListen.java @@ -160,7 +160,7 @@ public class EventListen implements Listener { npc = npcRegistry.getNPC(((EntityDamageByEntityEvent) event).getDamager()); if (npc == null) return; - event.setCancelled(npc.data().get(NPC.DAMAGE_OTHERS_METADATA, true)); + event.setCancelled(!npc.data().get(NPC.DAMAGE_OTHERS_METADATA, true)); NPCDamageEntityEvent damageEvent = new NPCDamageEntityEvent(npc, (EntityDamageByEntityEvent) event); Bukkit.getPluginManager().callEvent(damageEvent); } diff --git a/src/main/java/net/citizensnpcs/npc/ai/MCTargetStrategy.java b/src/main/java/net/citizensnpcs/npc/ai/MCTargetStrategy.java index 0b12f6bb5..21d626445 100644 --- a/src/main/java/net/citizensnpcs/npc/ai/MCTargetStrategy.java +++ b/src/main/java/net/citizensnpcs/npc/ai/MCTargetStrategy.java @@ -117,7 +117,6 @@ public class MCTargetStrategy implements PathStrategy, EntityTarget { if (cancelReason != null) { return true; } - setPath(); NMS.look(handle, target); if (aggro && canAttack()) { diff --git a/src/main/java/net/citizensnpcs/util/NMS.java b/src/main/java/net/citizensnpcs/util/NMS.java index 2f0d95b52..295eed014 100644 --- a/src/main/java/net/citizensnpcs/util/NMS.java +++ b/src/main/java/net/citizensnpcs/util/NMS.java @@ -87,9 +87,9 @@ public class NMS { } boolean success = target.damageEntity(DamageSource.mobAttack(handle), damage); - if (!success) return; + if (knockbackLevel > 0) { target.g(-Math.sin(handle.yaw * Math.PI / 180.0F) * knockbackLevel * 0.5F, 0.1D, Math.cos(handle.yaw * Math.PI / 180.0F) * knockbackLevel * 0.5F);