mod for the islanders smp
at master 32 lines 1.2 kB view raw
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}