package net.radsteve.islanders.mixin; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; import net.radsteve.islanders.SpecialItem; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerInventory.class) public class PlayerInventoryMixin { @Shadow @Final public PlayerEntity player; @Inject(method = "addStack(ILnet/minecraft/item/ItemStack;)I", at = @At("HEAD")) private void islanders$addStack(int slot, ItemStack stack, CallbackInfoReturnable cir) { final SpecialItem item = SpecialItem.Companion.find(stack); if (item == null) { return; } item.pickedUp((ServerPlayerEntity) player); } }