1 package com.irtimaled.bbor.mixin.server.management;
3 import com.irtimaled.bbor.common.EventBus;
4 import com.irtimaled.bbor.common.events.MobSpawnerBroken;
5 import net.minecraft.block.Block;
6 import net.minecraft.block.BlockMobSpawner;
7 import net.minecraft.server.management.PlayerInteractionManager;
8 import net.minecraft.util.math.BlockPos;
9 import net.minecraft.world.World;
10 import org.spongepowered.asm.mixin.Mixin;
11 import org.spongepowered.asm.mixin.Shadow;
12 import org.spongepowered.asm.mixin.injection.At;
13 import org.spongepowered.asm.mixin.injection.Inject;
14 import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
16 @Mixin(PlayerInteractionManager.class)
17 public class MixinPlayerInteractionManager {
21 @Inject(method = "tryHarvestBlock", at = @At("HEAD"))
22 private void tryHarvestBlock(BlockPos pos, CallbackInfoReturnable<Boolean> cir) {
23 Block block = this.world.getBlockState(pos).getBlock();
24 if (block instanceof BlockMobSpawner) {
25 EventBus.publish(new MobSpawnerBroken(this.world.dimension.getType(), pos));