fixed double firing of EntityDamageByEntityEvent

This commit is contained in:
sunkid 2011-12-27 10:56:46 -08:00 committed by Erik Broes
parent 5adcf526ab
commit 066a95769c
2 changed files with 8 additions and 2 deletions

View file

@ -17,6 +17,10 @@ public class EntityDamageSourceIndirect extends EntityDamageSource {
// CraftBukkit start
String source = (this.n == null) ? "Herobrine" : this.n.ad();
return LocaleI18n.a("death." + this.m, new Object[] { entityhuman.name, source});
}
public Entity getProximateDamageSource() {
return super.getEntity();
// CraftBukkit end
}
}
}

View file

@ -587,7 +587,9 @@ public abstract class EntityHuman extends EntityLiving {
// also damage the player in this way. For example, EntitySlime.
// We handle projectiles in their individual classes!
if (!(entity.getBukkitEntity() instanceof Projectile)) {
boolean isProjectile = damagesource instanceof EntityDamageSourceIndirect && ((EntityDamageSourceIndirect) damagesource).getProximateDamageSource().getBukkitEntity() instanceof Projectile;
if (!isProjectile) {
org.bukkit.entity.Entity damager = ((Entity) entity1).getBukkitEntity();
org.bukkit.entity.Entity damagee = this.getBukkitEntity();