diff options
author | feildmaster <admin@feildmaster.com> | 2012-03-12 17:55:02 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-15 05:11:48 -0400 |
commit | 45031672838e5686bb3dbb8909f2fdc5b40d6106 (patch) | |
tree | b055bc07ec76c08f9866fe6a14cb72955d921cf1 /src/main/java/net/minecraft/server/EntityFireball.java | |
parent | c625d00351f3c9c7042c8e391d76e333d57bd04a (diff) | |
download | craftbukkit-45031672838e5686bb3dbb8909f2fdc5b40d6106.tar craftbukkit-45031672838e5686bb3dbb8909f2fdc5b40d6106.tar.gz craftbukkit-45031672838e5686bb3dbb8909f2fdc5b40d6106.tar.lz craftbukkit-45031672838e5686bb3dbb8909f2fdc5b40d6106.tar.xz craftbukkit-45031672838e5686bb3dbb8909f2fdc5b40d6106.zip |
Fixed EntityDamageByEntityEvent to call for every attackable entity. Fixes BUKKIT-1129, Fixes BUKKIT-1054 and Fixes BUKKIT-147.
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityFireball.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityFireball.java | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java index ae7cd6f8..b4616af8 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java @@ -5,7 +5,6 @@ import java.util.List; // CraftBukkit start import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.entity.Explosive; -import org.bukkit.entity.Projectile; import org.bukkit.event.entity.ExplosionPrimeEvent; import org.bukkit.event.entity.ProjectileHitEvent; // CraftBukkit end @@ -137,6 +136,12 @@ public class EntityFireball extends Entity { if (movingobjectposition != null) { this.a(movingobjectposition); + // CraftBukkit start + if (this.dead) { + ProjectileHitEvent phe = new ProjectileHitEvent((org.bukkit.entity.Projectile) this.getBukkitEntity()); + this.world.getServer().getPluginManager().callEvent(phe); + } + // CraftBukkit end } this.locX += this.motX; @@ -189,30 +194,18 @@ public class EntityFireball extends Entity { protected void a(MovingObjectPosition movingobjectposition) { if (!this.world.isStatic) { + if (movingobjectposition.entity != null && movingobjectposition.entity.damageEntity(DamageSource.fireball(this, this.shooter), 4)) { + ; + } // CraftBukkit start - Projectile projectile = (Projectile) this.getBukkitEntity(); - ProjectileHitEvent phe = new ProjectileHitEvent(projectile); - this.world.getServer().getPluginManager().callEvent(phe); - // CraftBukkit end - if (!this.world.isStatic) { - // CraftBukkit start - if (movingobjectposition.entity != null) { - if (org.bukkit.craftbukkit.event.CraftEventFactory.handleProjectileEvent(projectile, movingobjectposition.entity, DamageSource.projectile(this, this.shooter), 0)) { - ; - } - } + ExplosionPrimeEvent event = new ExplosionPrimeEvent((Explosive) CraftEntity.getEntity(this.world.getServer(), this)); + this.world.getServer().getPluginManager().callEvent(event); - ExplosionPrimeEvent event = new ExplosionPrimeEvent((Explosive) CraftEntity.getEntity(this.world.getServer(), this)); - this.world.getServer().getPluginManager().callEvent(event); - - if (!event.isCancelled()) { - // give 'this' instead of (Entity) null so we know what causes the damage - this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); - } - // CraftBukkit end + if (!event.isCancelled()) { + // give 'this' instead of (Entity) null so we know what causes the damage + this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); } - - // this.world.createExplosion((Entity) null, this.locX, this.locY, this.locZ, 1.0F, true); // CraftBukkit + // CraftBukkit end this.die(); } } |