mod for the islanders smp
1package net.radsteve.islanders.mixin;
2
3import net.minecraft.inventory.Inventory;
4import net.minecraft.item.ItemStack;
5import net.minecraft.screen.GrindstoneScreenHandler;
6import net.radsteve.islanders.Islanders;
7import net.radsteve.islanders.SpecialItem;
8import org.spongepowered.asm.mixin.Final;
9import org.spongepowered.asm.mixin.Mixin;
10import org.spongepowered.asm.mixin.Shadow;
11import org.spongepowered.asm.mixin.injection.At;
12import org.spongepowered.asm.mixin.injection.Inject;
13import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14
15@Mixin(GrindstoneScreenHandler.class)
16public abstract class GrindstoneScreenHandlerMixin {
17 @Shadow
18 @Final
19 Inventory input;
20
21 @Shadow
22 protected abstract ItemStack getOutputStack(ItemStack firstInput, ItemStack secondInput);
23
24 @Inject(method = "updateResult", at = @At("HEAD"), cancellable = true)
25 private void islanders$updateResult(CallbackInfo ci) {
26 final ItemStack output = getOutputStack(input.getStack(0), input.getStack(1));
27 if (SpecialItem.Companion.find(output) != null) {
28 Islanders.getLogger().info("Tried grindstoning special item");
29 ci.cancel();
30 }
31 }
32}