aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch')
-rw-r--r--patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch b/patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch
new file mode 100644
index 0000000000..55eeb6d259
--- /dev/null
+++ b/patch-remap/og/net/minecraft/world/level/block/BlockLeaves.patch
@@ -0,0 +1,26 @@
+--- a/net/minecraft/world/level/block/BlockLeaves.java
++++ b/net/minecraft/world/level/block/BlockLeaves.java
+@@ -25,6 +25,8 @@
+ import net.minecraft.world.phys.shapes.VoxelShape;
+ import net.minecraft.world.phys.shapes.VoxelShapes;
+
++import org.bukkit.event.block.LeavesDecayEvent; // CraftBukkit
++
+ public class BlockLeaves extends Block implements IBlockWaterlogged {
+
+ public static final MapCodec<BlockLeaves> CODEC = simpleCodec(BlockLeaves::new);
+@@ -57,6 +59,14 @@
+ @Override
+ public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
+ if (this.decaying(iblockdata)) {
++ // CraftBukkit start
++ LeavesDecayEvent event = new LeavesDecayEvent(worldserver.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()));
++ worldserver.getCraftServer().getPluginManager().callEvent(event);
++
++ if (event.isCancelled() || worldserver.getBlockState(blockposition).getBlock() != this) {
++ return;
++ }
++ // CraftBukkit end
+ dropResources(iblockdata, worldserver, blockposition);
+ worldserver.removeBlock(blockposition, false);
+ }