Initial commit (Forge 1291).
This commit is contained in:
66
patches/net/minecraft/entity/ai/EntityAITarget.java.patch
Normal file
66
patches/net/minecraft/entity/ai/EntityAITarget.java.patch
Normal file
@ -0,0 +1,66 @@
|
||||
--- ../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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user