From 86b716bc5ba5e6345576a1437bd80b6b70082315 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Wed, 13 Aug 2025 08:29:06 -0700 Subject: [PATCH] Fix BlockFadeEvent not being called when fire extinguishes in rain (#12972) --- .../minecraft/world/level/block/FireBlock.java.patch | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/level/block/FireBlock.java.patch b/paper-server/patches/sources/net/minecraft/world/level/block/FireBlock.java.patch index ed71c0640..a482682ef 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/block/FireBlock.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/block/FireBlock.java.patch @@ -27,7 +27,7 @@ } @Override -@@ -141,11 +_,11 @@ +@@ -141,18 +_,18 @@ @Override protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { @@ -41,12 +41,20 @@ } BlockState blockState = level.getBlockState(pos.below()); + boolean isTag = blockState.is(level.dimensionType().infiniburn()); + int ageValue = state.getValue(AGE); + if (!isTag && level.isRaining() && this.isNearRain(level, pos) && random.nextFloat() < 0.2F + ageValue * 0.03F) { +- level.removeBlock(pos, false); ++ this.fireExtinguished(level, pos); // CraftBukkit - extinguished by rain + } else { + int min = Math.min(15, ageValue + random.nextInt(3) / 2); + if (ageValue != min) { @@ -164,26 +_,28 @@ if (!this.isValidFireLocation(level, pos)) { BlockPos blockPos = pos.below(); if (!level.getBlockState(blockPos).isFaceSturdy(level, blockPos, Direction.UP) || ageValue > 3) { - level.removeBlock(pos, false); -+ this.fireExtinguished(level, pos); // CraftBukkit - extinguished by rain ++ this.fireExtinguished(level, pos); // CraftBukkit } return;