summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityFireball.java
diff options
context:
space:
mode:
authorfeildmaster <admin@feildmaster.com>2012-03-12 17:55:02 -0500
committerEvilSeph <evilseph@gmail.com>2012-03-15 05:11:48 -0400
commit45031672838e5686bb3dbb8909f2fdc5b40d6106 (patch)
treeb055bc07ec76c08f9866fe6a14cb72955d921cf1 /src/main/java/net/minecraft/server/EntityFireball.java
parentc625d00351f3c9c7042c8e391d76e333d57bd04a (diff)
downloadcraftbukkit-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.java37
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();
}
}