--- a/net/minecraft/world/level/block/SculkCatalystBlock.java
+++ b/net/minecraft/world/level/block/SculkCatalystBlock.java
@@ -20,30 +20,32 @@
 import net.minecraft.world.level.block.state.properties.BooleanProperty;
 
 public class SculkCatalystBlock extends BaseEntityBlock {
+
     public static final MapCodec<SculkCatalystBlock> CODEC = simpleCodec(SculkCatalystBlock::new);
     public static final BooleanProperty PULSE = BlockStateProperties.BLOOM;
     private final IntProvider xpRange = ConstantInt.of(5);
 
     @Override
     public MapCodec<SculkCatalystBlock> codec() {
-        return CODEC;
+        return SculkCatalystBlock.CODEC;
     }
 
     public SculkCatalystBlock(BlockBehaviour.Properties settings) {
         super(settings);
-        this.registerDefaultState(this.stateDefinition.any().setValue(PULSE, Boolean.valueOf(false)));
+        this.registerDefaultState((BlockState) ((BlockState) this.stateDefinition.any()).setValue(SculkCatalystBlock.PULSE, false));
     }
 
     @Override
     protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
-        builder.add(PULSE);
+        builder.add(SculkCatalystBlock.PULSE);
     }
 
     @Override
     protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
-        if (state.getValue(PULSE)) {
-            world.setBlock(pos, state.setValue(PULSE, Boolean.valueOf(false)), 3);
+        if ((Boolean) state.getValue(SculkCatalystBlock.PULSE)) {
+            world.setBlock(pos, (BlockState) state.setValue(SculkCatalystBlock.PULSE, false), 3);
         }
+
     }
 
     @Nullable
@@ -66,8 +68,16 @@
     @Override
     protected void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) {
         super.spawnAfterBreak(state, world, pos, tool, dropExperience);
-        if (dropExperience) {
-            this.tryDropExperience(world, pos, tool, this.xpRange);
+        // CraftBukkit start - Delegate to getExpDrop
+    }
+
+    @Override
+    public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack, boolean flag) {
+        if (flag) {
+            return this.tryDropExperience(worldserver, blockposition, itemstack, this.xpRange);
         }
+
+        return 0;
+        // CraftBukkit end
     }
 }
