mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-13 11:15:57 -07:00
[Bleeding] Added new target events. Fixes BUKKIT-935
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user