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.
Dieser Commit ist enthalten in:
Ursprung
62a9b8815b
Commit
59d6b60c0a
@ -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);
|
org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(this.d, entityliving, reason);
|
||||||
if (event.isCancelled() || event.getTarget() == null) {
|
if (event.isCancelled() || event.getTarget() == null) {
|
||||||
|
if (this.d instanceof EntityCreature) ((EntityCreature) this.d).target = null;
|
||||||
return false;
|
return false;
|
||||||
} else if (entityliving.getBukkitEntity() != event.getTarget()) {
|
} else if (entityliving.getBukkitEntity() != event.getTarget()) {
|
||||||
this.d.b((EntityLiving) ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle());
|
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
|
// CraftBukkit end
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren