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

Teach EnderDragon how to throw EntityDamage events

Relates to BUKKIT-129
Dieser Commit ist enthalten in:
Andrew Ardill 2011-12-05 19:18:05 +11:00
Ursprung b1a3aa602a
Commit bf60f44013

Datei anzeigen

@ -1,5 +1,9 @@
package net.minecraft.server; package net.minecraft.server;
import org.bukkit.Bukkit;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -388,8 +392,20 @@ public class EntityEnderDragon extends EntityComplex {
Entity entity = (Entity) list.get(i); Entity entity = (Entity) list.get(i);
if (entity instanceof EntityLiving) { if (entity instanceof EntityLiving) {
// CraftBukkit start - throw damage events when the dragon attacks
// The EntityHuman case is handled in EntityHuman, so don't throw it here
if (!(entity instanceof EntityHuman)) {
EntityDamageByEntityEvent damageEvent = new EntityDamageByEntityEvent(this.getBukkitEntity(), entity.getBukkitEntity(), EntityDamageEvent.DamageCause.ENTITY_ATTACK, 10);
Bukkit.getPluginManager().callEvent(damageEvent);
if (!damageEvent.isCancelled()) {
entity.damageEntity(DamageSource.mobAttack(this), damageEvent.getDamage());
}
} else {
entity.damageEntity(DamageSource.mobAttack(this), 10); entity.damageEntity(DamageSource.mobAttack(this), 10);
} }
// CraftBukkit end
}
} }
} }