3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-11-16 04:50:05 +01:00

[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.
Dieser Commit ist enthalten in:
t00thpick1 2013-12-11 13:13:06 -05:00 committet von Nate Mortensen
Ursprung 1154484815
Commit ae9cd0729e

Datei anzeigen

@ -10,6 +10,7 @@ import org.bukkit.event.entity.EntityCreatePortalEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
// CraftBukkit end // CraftBukkit end
@ -377,7 +378,19 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo
private void bO() { private void bO() {
this.bz = false; this.bz = false;
if (this.random.nextInt(2) == 0 && !this.world.players.isEmpty()) { 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 { } else {
boolean flag = false; boolean flag = false;