From 59d6b60c0abe28654cb344fe4a3008ab5f6f940a Mon Sep 17 00:00:00 2001 From: EdGruberman Date: Thu, 27 Sep 2012 21:55:08 -0700 Subject: [PATCH] Update entity target data to reflect current AI status. Fixes BUKKIT-2280 The new AI system introduced by Minecraft 1.2 no longer relies on the target field in the entity so it is frequently out of sync with what the entity is actually doing. This modifies the AI goal to update the target so our API can return the correct information. --- src/main/java/net/minecraft/server/PathfinderGoalTarget.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalTarget.java index 2c59ef6d4f..bbb1cdfc18 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalTarget.java @@ -119,10 +119,12 @@ public abstract class PathfinderGoalTarget extends PathfinderGoal { org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(this.d, entityliving, reason); if (event.isCancelled() || event.getTarget() == null) { + if (this.d instanceof EntityCreature) ((EntityCreature) this.d).target = null; return false; } else if (entityliving.getBukkitEntity() != event.getTarget()) { this.d.b((EntityLiving) ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle()); } + if (this.d instanceof EntityCreature) ((EntityCreature) this.d).target = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle(); // CraftBukkit end return true;