--- ../src-base/minecraft/net/minecraft/entity/monster/EntityMob.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityMob.java @@ -1,5 +1,6 @@ package net.minecraft.entity.monster; +import org.bukkit.event.entity.EntityTargetEvent; // CraftBukkit import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; @@ -75,7 +76,29 @@ { if (entity != this) { - this.entityToAttack = entity; + // CraftBukkit start - We still need to call events for entities without goals + if (entity != this.entityToAttack && (this instanceof EntityBlaze || this instanceof EntityEnderman || this instanceof EntitySpider || this instanceof EntityGiantZombie || this instanceof EntitySilverfish)) + { + EntityTargetEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetEvent(this, entity, EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY); + + if (!event.isCancelled()) + { + if (event.getTarget() == null) + { + this.entityToAttack = null; + } + else + { + this.entityToAttack = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle(); + } + } + } + else + { + this.entityToAttack = entity; + } + + // CraftBukkit end } return true;