--- a/net/minecraft/world/level/block/NetherWartBlock.java
+++ b/net/minecraft/world/level/block/NetherWartBlock.java
@@ -17,29 +17,25 @@
 import net.minecraft.world.phys.shapes.VoxelShape;
 
 public class NetherWartBlock extends BushBlock {
+
     public static final MapCodec<NetherWartBlock> CODEC = simpleCodec(NetherWartBlock::new);
     public static final int MAX_AGE = 3;
     public static final IntegerProperty AGE = BlockStateProperties.AGE_3;
-    private static final VoxelShape[] SHAPE_BY_AGE = new VoxelShape[]{
-        Block.box(0.0, 0.0, 0.0, 16.0, 5.0, 16.0),
-        Block.box(0.0, 0.0, 0.0, 16.0, 8.0, 16.0),
-        Block.box(0.0, 0.0, 0.0, 16.0, 11.0, 16.0),
-        Block.box(0.0, 0.0, 0.0, 16.0, 14.0, 16.0)
-    };
+    private static final VoxelShape[] SHAPE_BY_AGE = new VoxelShape[]{Block.box(0.0D, 0.0D, 0.0D, 16.0D, 5.0D, 16.0D), Block.box(0.0D, 0.0D, 0.0D, 16.0D, 8.0D, 16.0D), Block.box(0.0D, 0.0D, 0.0D, 16.0D, 11.0D, 16.0D), Block.box(0.0D, 0.0D, 0.0D, 16.0D, 14.0D, 16.0D)};
 
     @Override
     public MapCodec<NetherWartBlock> codec() {
-        return CODEC;
+        return NetherWartBlock.CODEC;
     }
 
     protected NetherWartBlock(BlockBehaviour.Properties settings) {
         super(settings);
-        this.registerDefaultState(this.stateDefinition.any().setValue(AGE, Integer.valueOf(0)));
+        this.registerDefaultState((BlockState) ((BlockState) this.stateDefinition.any()).setValue(NetherWartBlock.AGE, 0));
     }
 
     @Override
     protected VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
-        return SHAPE_BY_AGE[state.getValue(AGE)];
+        return NetherWartBlock.SHAPE_BY_AGE[(Integer) state.getValue(NetherWartBlock.AGE)];
     }
 
     @Override
@@ -49,16 +45,18 @@
 
     @Override
     protected boolean isRandomlyTicking(BlockState state) {
-        return state.getValue(AGE) < 3;
+        return (Integer) state.getValue(NetherWartBlock.AGE) < 3;
     }
 
     @Override
     protected void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
-        int i = state.getValue(AGE);
-        if (i < 3 && random.nextInt(10) == 0) {
-            state = state.setValue(AGE, Integer.valueOf(i + 1));
-            world.setBlock(pos, state, 2);
+        int i = (Integer) state.getValue(NetherWartBlock.AGE);
+
+        if (i < 3 && random.nextFloat() < (world.spigotConfig.wartModifier / (100.0f * 10))) { // Spigot - SPIGOT-7159: Better modifier resolution
+            state = (BlockState) state.setValue(NetherWartBlock.AGE, i + 1);
+            org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(world, pos, state, 2); // CraftBukkit
         }
+
     }
 
     @Override
@@ -68,6 +66,6 @@
 
     @Override
     protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
-        builder.add(AGE);
+        builder.add(NetherWartBlock.AGE);
     }
 }
