--- a/net/minecraft/server/PathfinderGoalTempt.java +++ b/net/minecraft/server/PathfinderGoalTempt.java @@ -1,6 +1,12 @@ package net.minecraft.server; import java.util.EnumSet; +// CraftBukkit start +import org.bukkit.craftbukkit.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +// CraftBukkit end public class PathfinderGoalTempt extends PathfinderGoal { @@ -12,7 +18,7 @@ private double g; private double h; private double i; - protected EntityHuman target; + protected EntityLiving target; // CraftBukkit private int j; private boolean k; private final RecipeItemStack l; @@ -40,7 +46,17 @@ return false; } else { this.target = this.a.world.a(PathfinderGoalTempt.c, (EntityLiving) this.a); - return this.target == null ? false : this.a(this.target.getItemInMainHand()) || this.a(this.target.getItemInOffHand()); + // CraftBukkit start + boolean tempt = this.target == null ? false : this.a(this.target.getItemInMainHand()) || this.a(this.target.getItemInOffHand()); + if (tempt) { + EntityTargetLivingEntityEvent event = CraftEventFactory.callEntityTargetLivingEvent(this.a, this.target, EntityTargetEvent.TargetReason.TEMPT); + if (event.isCancelled()) { + return false; + } + this.target = (event.getTarget() == null) ? null : ((CraftLivingEntity) event.getTarget()).getHandle(); + } + return tempt; + // CraftBukkit end } }