From cc7273b066ae51584ab1322169705feeaaf48748 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Wed, 30 Sep 2015 09:02:11 +1000 Subject: [PATCH] SPIGOT-759: Add FireworkExplodeEvent. By: DemonWav --- paper-server/nms-patches/EntityFireworks.patch | 12 +++++++++++- .../bukkit/craftbukkit/event/CraftEventFactory.java | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/paper-server/nms-patches/EntityFireworks.patch b/paper-server/nms-patches/EntityFireworks.patch index 8b1378917..4da644dbc 100644 --- a/paper-server/nms-patches/EntityFireworks.patch +++ b/paper-server/nms-patches/EntityFireworks.patch @@ -1 +1,11 @@ - +--- a/net/minecraft/server/EntityFireworks.java ++++ b/net/minecraft/server/EntityFireworks.java +@@ -78,7 +78,7 @@ + } + + if (!this.world.isClientSide && this.ticksFlown > this.expectedLifespan) { +- this.world.broadcastEntityEffect(this, (byte) 17); ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this).isCancelled()) this.world.broadcastEntityEffect(this, (byte) 17); + this.die(); + } + diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 9e471c782..f0d3f754b 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -34,6 +34,7 @@ import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.entity.Arrow; import org.bukkit.entity.Creeper; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Firework; import org.bukkit.entity.Horse; import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LivingEntity; @@ -946,4 +947,10 @@ public class CraftEventFactory { entityHuman.world.getServer().getPluginManager().callEvent(event); return (Cancellable) event; } + + public static FireworkExplodeEvent callFireworkExplodeEvent(EntityFireworks firework) { + FireworkExplodeEvent event = new FireworkExplodeEvent((Firework) firework.getBukkitEntity()); + firework.world.getServer().getPluginManager().callEvent(event); + return event; + } }