package net.radsteve.islanders.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Cancellable; import net.minecraft.block.CrafterBlock; import net.minecraft.item.ItemStack; import net.radsteve.islanders.SpecialItem; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(CrafterBlock.class) public class CrafterBlockMixin { @ModifyExpressionValue( method = "craft", at = @At(value = "INVOKE", target = "Lnet/minecraft/recipe/CraftingRecipe;craft(Lnet/minecraft/recipe/input/RecipeInput;Lnet/minecraft/registry/RegistryWrapper$WrapperLookup;)Lnet/minecraft/item/ItemStack;") ) private ItemStack islanders$craft(ItemStack stack, @Cancellable CallbackInfo ci) { if (SpecialItem.Companion.find(stack) != null) { ci.cancel(); } return stack; } }