fixed double firing of EntityDamageByEntityEvent

Dieser Commit ist enthalten in:
sunkid 2011-12-27 10:56:46 -08:00 committet von Erik Broes
Ursprung 5adcf526ab
Commit 066a95769c
2 geänderte Dateien mit 8 neuen und 2 gelöschten Zeilen

Datei anzeigen

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

Datei anzeigen

@ -587,7 +587,9 @@ public abstract class EntityHuman extends EntityLiving {
// also damage the player in this way. For example, EntitySlime. // also damage the player in this way. For example, EntitySlime.
// We handle projectiles in their individual classes! // 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 damager = ((Entity) entity1).getBukkitEntity();
org.bukkit.entity.Entity damagee = this.getBukkitEntity(); org.bukkit.entity.Entity damagee = this.getBukkitEntity();