--- a/net/minecraft/server/BlockCrops.java
+++ b/net/minecraft/server/BlockCrops.java
@@ -2,6 +2,8 @@
 
 import java.util.Random;
 
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
 public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement {
 
     public static final BlockStateInteger AGE = BlockStateInteger.of("age", 0, 7);
@@ -53,7 +55,10 @@
                 float f = a((Block) this, world, blockposition);
 
                 if (random.nextInt((int) (25.0F / f) + 1) == 0) {
-                    world.setTypeAndData(blockposition, this.setAge(i + 1), 2);
+                    // CraftBukkit start
+                    IBlockData data = this.setAge(i + 1);
+                    CraftEventFactory.handleBlockGrowEvent(world, blockposition.getX(), blockposition.getY(), blockposition.getZ(), this, toLegacyData(data));
+                    // CraftBukkit end
                 }
             }
         }
@@ -68,7 +73,10 @@
             i = j;
         }
 
-        world.setTypeAndData(blockposition, this.setAge(i), 2);
+        // CraftBukkit start
+        IBlockData data = this.setAge(i);
+        CraftEventFactory.handleBlockGrowEvent(world, blockposition.getX(), blockposition.getY(), blockposition.getZ(), this, toLegacyData(data));
+        // CraftBukkit end
     }
 
     protected int b(World world) {