Files
CatServer/patches/net/minecraft/entity/projectile/EntityLargeFireball.java.patch

28 lines
1.3 KiB
Diff

--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityLargeFireball.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityLargeFireball.java
@@ -1,5 +1,7 @@
package net.minecraft.entity.projectile;
+import org.bukkit.event.entity.ExplosionPrimeEvent;
+
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound;
@@ -41,7 +43,15 @@
}
boolean flag = this.worldObj.getGameRules().getBoolean("mobGriefing");
- this.worldObj.newExplosion((Entity)null, this.posX, this.posY, this.posZ, (float)this.explosionPower, flag, flag);
+ // CraftBukkit start - fire ExplosionPrimeEvent
+ ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) org.bukkit.craftbukkit.entity.CraftEntity.getEntity(this.worldObj.getServer(), this));
+ this.worldObj.getServer().getPluginManager().callEvent(event);
+
+ if (!event.isCancelled()) {
+ // give 'this' instead of (Entity) null so we know what causes the damage
+ this.worldObj.newExplosion(this, this.posX, this.posY, this.posZ, event.getRadius(), event.getFire(), flag);
+ }
+ // CraftBukkit end
this.setDead();
}
}