mod for the islanders smp
1package net.radsteve.islanders.mixin;
2
3import com.llamalad7.mixinextras.sugar.Local;
4import net.minecraft.entity.player.PlayerEntity;
5import net.minecraft.item.ItemStack;
6import net.minecraft.screen.CrafterScreenHandler;
7import net.radsteve.islanders.Islanders;
8import net.radsteve.islanders.SpecialItem;
9import org.spongepowered.asm.mixin.Final;
10import org.spongepowered.asm.mixin.Mixin;
11import org.spongepowered.asm.mixin.Shadow;
12import org.spongepowered.asm.mixin.injection.At;
13import org.spongepowered.asm.mixin.injection.Inject;
14import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
15
16@Mixin(CrafterScreenHandler.class)
17public class CrafterScreenHandlerMixin {
18 @Shadow
19 @Final
20 private PlayerEntity player;
21
22 @Inject(method = "updateResult", at = @At(value = "INVOKE", target = "Lnet/minecraft/inventory/CraftingResultInventory;setStack(ILnet/minecraft/item/ItemStack;)V"), cancellable = true)
23 private void islanders$updateResult(CallbackInfo ci, @Local ItemStack stack) {
24 if (SpecialItem.Companion.find(stack) != null) {
25 Islanders.getLogger().info("{} tried crafting special item via crafter", player.getNameForScoreboard());
26 ci.cancel();
27 }
28 }
29}