--- a/net/minecraft/world/level/block/LeavesBlock.java
+++ b/net/minecraft/world/level/block/LeavesBlock.java
@@ -56,6 +_,14 @@
     @Override
     protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
         if (this.decaying(state)) {
+            // CraftBukkit start
+            org.bukkit.event.block.LeavesDecayEvent event = new org.bukkit.event.block.LeavesDecayEvent(org.bukkit.craftbukkit.block.CraftBlock.at(level, pos));
+            level.getCraftServer().getPluginManager().callEvent(event);
+
+            if (event.isCancelled() || !level.getBlockState(pos).is(this)) {
+                return;
+            }
+            // CraftBukkit end
             dropResources(state, level, pos);
             level.removeBlock(pos, false);
         }
