diff options
author | md_5 <git@md-5.net> | 2016-07-01 11:40:42 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2016-07-01 11:41:27 +1000 |
commit | 3804ba654e0e905f16e19108939877c1e322c4d9 (patch) | |
tree | 287f7c4acf0b52eb60ff820a53ecf6c11b3b33a0 /nms-patches/PathfinderGoalTempt.patch | |
parent | d3507d2818a787cf8234ded6eb3baa485cd98f10 (diff) | |
download | craftbukkit-3804ba654e0e905f16e19108939877c1e322c4d9.tar craftbukkit-3804ba654e0e905f16e19108939877c1e322c4d9.tar.gz craftbukkit-3804ba654e0e905f16e19108939877c1e322c4d9.tar.lz craftbukkit-3804ba654e0e905f16e19108939877c1e322c4d9.tar.xz craftbukkit-3804ba654e0e905f16e19108939877c1e322c4d9.zip |
SPIGOT-1373: Implement EntityTargetEvent for TEMPT.
This can be a high frequency event call. Use with care.
Diffstat (limited to 'nms-patches/PathfinderGoalTempt.patch')
-rw-r--r-- | nms-patches/PathfinderGoalTempt.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/nms-patches/PathfinderGoalTempt.patch b/nms-patches/PathfinderGoalTempt.patch new file mode 100644 index 00000000..d59fc830 --- /dev/null +++ b/nms-patches/PathfinderGoalTempt.patch @@ -0,0 +1,44 @@ +--- a/net/minecraft/server/PathfinderGoalTempt.java ++++ b/net/minecraft/server/PathfinderGoalTempt.java +@@ -3,6 +3,12 @@ + import com.google.common.collect.Sets; + import java.util.Set; + import javax.annotation.Nullable; ++// CraftBukkit start ++import org.bukkit.craftbukkit.entity.CraftLivingEntity; ++import org.bukkit.craftbukkit.event.CraftEventFactory; ++import org.bukkit.event.entity.EntityTargetEvent; ++import org.bukkit.event.entity.EntityTargetLivingEntityEvent; ++// CraftBukkit end + + public class PathfinderGoalTempt extends PathfinderGoal { + +@@ -13,7 +19,7 @@ + private double e; + private double f; + private double g; +- private EntityHuman h; ++ private EntityLiving h; // CraftBukkit + private int i; + private boolean j; + private final Set<Item> k; +@@ -40,7 +46,18 @@ + return false; + } else { + this.h = this.a.world.findNearbyPlayer(this.a, 10.0D); +- return this.h == null ? false : this.a(this.h.getItemInMainHand()) || this.a(this.h.getItemInOffHand()); ++ // CraftBukkit start ++ // PAIL: rename ++ boolean tempt = this.h == null ? false : this.a(this.h.getItemInMainHand()) || this.a(this.h.getItemInOffHand()); ++ if (tempt) { ++ EntityTargetLivingEntityEvent event = CraftEventFactory.callEntityTargetLivingEvent(this.a, this.h, EntityTargetEvent.TargetReason.TEMPT); ++ if (event.isCancelled()) { ++ return false; ++ } ++ this.h = ((CraftLivingEntity) event.getTarget()).getHandle(); ++ } ++ return tempt; ++ // CraftBukkit end + } + } + |