From ae9cd0729e26b5f271989579c12f8fec38060a19 Mon Sep 17 00:00:00 2001 From: t00thpick1 Date: Wed, 11 Dec 2013 13:13:06 -0500 Subject: [PATCH] [Bleeding] Call EntityTargetEvent for EnderDragons. Fixes BUKKIT-5160 EnderDragons did not call an EntityTargetEvent when they were targeting random players in the End. This commit adds that event call into the targeting code. --- .../net/minecraft/server/EntityEnderDragon.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java index 6cb09c43f0..68e97f17d6 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java @@ -10,6 +10,7 @@ import org.bukkit.event.entity.EntityCreatePortalEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.Bukkit; // CraftBukkit end @@ -377,7 +378,19 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo private void bO() { this.bz = false; if (this.random.nextInt(2) == 0 && !this.world.players.isEmpty()) { - this.bD = (Entity) this.world.players.get(this.random.nextInt(this.world.players.size())); + // CraftBukkit start + Entity target = (Entity) this.world.players.get(this.random.nextInt(this.world.players.size())); + EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), target.getBukkitEntity(), EntityTargetEvent.TargetReason.RANDOM_TARGET); + this.world.getServer().getPluginManager().callEvent(event); + + if (!event.isCancelled()) { + if (event.getTarget() == null) { + this.bD = null; + } else { + this.bD = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle(); + } + } + // CraftBukkit end } else { boolean flag = false;