--- a/net/minecraft/server/BlockPlant.java
+++ b/net/minecraft/server/BlockPlant.java
@@ -2,6 +2,10 @@
 
 import java.util.Random;
 import javax.annotation.Nullable;
+// CraftBukkit start
+import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+import org.bukkit.event.block.BlockPhysicsEvent;
+// CraftBukkit end
 
 public class BlockPlant extends Block {
 
@@ -40,6 +44,15 @@
 
     protected void e(World world, BlockPosition blockposition, IBlockData iblockdata) {
         if (!this.f(world, blockposition, iblockdata)) {
+            // CraftBukkit Start
+            org.bukkit.block.Block block = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+            BlockPhysicsEvent event = new BlockPhysicsEvent(block, block.getTypeId());
+            world.getServer().getPluginManager().callEvent(event);
+
+            if (event.isCancelled()) {
+                return;
+            }
+            // CraftBukkit end
             this.b(world, blockposition, iblockdata, 0);
             world.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 3);
         }