From c924547e52722730dc0b03be98f5db3cffeb7c45 Mon Sep 17 00:00:00 2001 From: JCThePants Date: Tue, 24 Feb 2015 10:01:32 -0800 Subject: [PATCH] Fix no knock back on player NPC's when hit Attempt number 2 due to git noob mistakes. --- .../citizensnpcs/npc/entity/EntityHumanNPC.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java b/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java index dde146bda..59caca344 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java +++ b/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java @@ -87,6 +87,23 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder { } } + @Override + public boolean damageEntity(DamageSource damagesource, float f) { + // knock back velocity is cancelled and sent to client for handling when + // the entity is a player. there is no client so make this happen manually. + boolean damaged = super.damageEntity(damagesource, f); + if (damaged && velocityChanged) { + velocityChanged = false; + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), new Runnable() { + @Override + public void run() { + EntityHumanNPC.this.velocityChanged = true; + } + }); + } + return damaged; + } + @Override public void die(DamageSource damagesource) { // players that die are not normally removed from the world. when the