Fix firework entity not being removed when FireworkExplodeEvent is cancelled (#12268)

* Fix Firework not removed when FireworkExplodeEvent is canceled

* JUnit require pass null

* tweaks
This commit is contained in:
Pedro
2025-03-23 20:20:14 -03:00
committed by GitHub
parent 058455e4ca
commit f225858235
3 changed files with 23 additions and 20 deletions

View File

@@ -22,11 +22,11 @@
if (this.life > this.lifetime && this.level() instanceof ServerLevel serverLevel) {
- this.explode(serverLevel);
+ // CraftBukkit start
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this).isCancelled()) {
+ // Paper start - Call FireworkExplodeEvent
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this)) {
+ this.explode(serverLevel);
+ }
+ // CraftBukkit end
+ // Paper end - Call FireworkExplodeEvent
}
}
@@ -43,11 +43,11 @@
super.onHitEntity(result);
if (this.level() instanceof ServerLevel serverLevel) {
- this.explode(serverLevel);
+ // CraftBukkit start
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this).isCancelled()) {
+ // Paper start - Call FireworkExplodeEvent
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this)) {
+ this.explode(serverLevel);
+ }
+ // CraftBukkit end
+ // Paper end - Call FireworkExplodeEvent
}
}
@@ -56,11 +56,11 @@
this.level().getBlockState(blockPos).entityInside(this.level(), blockPos, this);
if (this.level() instanceof ServerLevel serverLevel && this.hasExplosion()) {
- this.explode(serverLevel);
+ // CraftBukkit start
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this).isCancelled()) {
+ // Paper start - Call FireworkExplodeEvent
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callFireworkExplodeEvent(this)) {
+ this.explode(serverLevel);
+ }
+ // CraftBukkit end
+ // Paper end - Call FireworkExplodeEvent
}
super.onHitBlock(result);