diff --git a/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch b/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch new file mode 100644 index 000000000..2b1dac37a --- /dev/null +++ b/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch @@ -0,0 +1,30 @@ +--- a/net/minecraft/world/entity/vehicle/EntityMinecartTNT.java ++++ b/net/minecraft/world/entity/vehicle/EntityMinecartTNT.java +@@ -20,6 +20,10 @@ + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.material.Fluid; + ++// CraftBukkit start ++import org.bukkit.event.entity.ExplosionPrimeEvent; ++// CraftBukkit end ++ + public class EntityMinecartTNT extends EntityMinecartAbstract { + + private static final byte EVENT_PRIME = 10; +@@ -106,7 +110,15 @@ + d1 = 5.0D; + } + +- this.level.explode(this, this.getX(), this.getY(), this.getZ(), (float) (4.0D + this.random.nextDouble() * 1.5D * d1), Explosion.Effect.BREAK); ++ // CraftBukkit start ++ ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity(), (float) (4.0D + this.random.nextDouble() * 1.5D * d1), false); ++ this.level.getCraftServer().getPluginManager().callEvent(event); ++ if (event.isCancelled()) { ++ fuse = -1; ++ return; ++ } ++ this.level.explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), Explosion.Effect.BREAK); ++ // CraftBukkit end + this.discard(); + } +