summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/PathfinderGoalTarget.java
diff options
context:
space:
mode:
authorfeildmaster <admin@feildmaster.com>2012-03-09 15:40:59 -0600
committerEvilSeph <evilseph@gmail.com>2012-03-10 02:08:33 -0500
commit77ef0510958b7386b7f9b861aa7936f21a183a6b (patch)
tree6c402f3c583c803cbd81450c788d4c65d0c2707a /src/main/java/net/minecraft/server/PathfinderGoalTarget.java
parenta967d6e3710df70bbbc7663ed0f3ed8b65810d4d (diff)
downloadcraftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar
craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.gz
craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.lz
craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.xz
craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.zip
[Bleeding] Added new target events. Fixes BUKKIT-935
Diffstat (limited to 'src/main/java/net/minecraft/server/PathfinderGoalTarget.java')
-rw-r--r--src/main/java/net/minecraft/server/PathfinderGoalTarget.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalTarget.java
index be5371a0..327f235c 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalTarget.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalTarget.java
@@ -1,5 +1,7 @@
package net.minecraft.server;
+import org.bukkit.event.entity.EntityTargetEvent; // CraftBukkit
+
public abstract class PathfinderGoalTarget extends PathfinderGoal {
protected EntityLiving c;
@@ -100,6 +102,31 @@ public abstract class PathfinderGoalTarget extends PathfinderGoal {
}
}
+ // 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 PathfinderGoalDefendVillage) {
+ reason = EntityTargetEvent.TargetReason.DEFEND_VILLAGE;
+ } else if (this instanceof PathfinderGoalHurtByTarget) {
+ reason = EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY;
+ } else if (this instanceof PathfinderGoalNearestAttackableTarget) {
+ if (entityliving instanceof EntityHuman) {
+ reason = EntityTargetEvent.TargetReason.CLOSEST_PLAYER;
+ }
+ } else if (this instanceof PathfinderGoalOwnerHurtByTarget) {
+ reason = EntityTargetEvent.TargetReason.TARGET_ATTACKED_OWNER;
+ } else if (this instanceof PathfinderGoalOwnerHurtTarget) {
+ reason = EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET;
+ }
+
+ org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(c, entityliving, reason);
+ if (event.isCancelled() || event.getTarget() == null) {
+ return false;
+ } else if (entityliving.getBukkitEntity() != event.getTarget()) {
+ this.c.b((EntityLiving) ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle());
+ }
+ // CraftBukkit end
+
return true;
}
}