You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.7 KiB
66 lines
2.7 KiB
--- ../src-base/minecraft/net/minecraft/entity/ai/EntityAITarget.java |
|
+++ ../src-work/minecraft/net/minecraft/entity/ai/EntityAITarget.java |
|
@@ -12,6 +12,11 @@ |
|
import net.minecraft.util.MathHelper; |
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
+// CraftBukkit start |
|
+import org.bukkit.craftbukkit.entity.CraftEntity; |
|
+import org.bukkit.event.entity.EntityTargetEvent; |
|
+// CraftBukkit end |
|
+ |
|
public abstract class EntityAITarget extends EntityAIBase |
|
{ |
|
protected EntityCreature taskOwner; |
|
@@ -156,6 +161,51 @@ |
|
} |
|
} |
|
|
|
+ // CraftBukkit start - Check all the different target goals for the reason, default to RANDOM_TARGET |
|
+ EntityTargetEvent.TargetReason reason = EntityTargetEvent.TargetReason.RANDOM_TARGET; |
|
+ |
|
+ if (this instanceof EntityAIDefendVillage) |
|
+ { |
|
+ reason = EntityTargetEvent.TargetReason.DEFEND_VILLAGE; |
|
+ } |
|
+ else if (this instanceof EntityAIHurtByTarget) |
|
+ { |
|
+ reason = EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY; |
|
+ } |
|
+ else if (this instanceof EntityAINearestAttackableTarget) |
|
+ { |
|
+ if (p_75296_1_ instanceof EntityPlayer) |
|
+ { |
|
+ reason = EntityTargetEvent.TargetReason.CLOSEST_PLAYER; |
|
+ } |
|
+ } |
|
+ else if (this instanceof EntityAIOwnerHurtByTarget) |
|
+ { |
|
+ reason = EntityTargetEvent.TargetReason.TARGET_ATTACKED_OWNER; |
|
+ } |
|
+ else if (this instanceof EntityAIOwnerHurtTarget) |
|
+ { |
|
+ reason = EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET; |
|
+ } |
|
+ |
|
+ org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(this.taskOwner, p_75296_1_, reason); |
|
+ |
|
+ if (event.isCancelled() || event.getTarget() == null) |
|
+ { |
|
+ this.taskOwner.setAttackTarget(null); |
|
+ return false; |
|
+ } |
|
+ else if (p_75296_1_.getBukkitEntity() != event.getTarget()) |
|
+ { |
|
+ this.taskOwner.setAttackTarget((EntityLivingBase)((CraftEntity) event.getTarget()).getHandle()); |
|
+ } |
|
+ |
|
+ if (this.taskOwner instanceof EntityCreature) |
|
+ { |
|
+ ((EntityCreature) this.taskOwner).entityToAttack = ((CraftEntity) event.getTarget()).getHandle(); |
|
+ } |
|
+ |
|
+ // CraftBukkit end |
|
return true; |
|
} |
|
}
|
|
|