From db2a555ae9d0736b8a351e10ff8d41eb2f7c3620 Mon Sep 17 00:00:00 2001 From: Aleksey Date: Fri, 26 Feb 2021 22:39:43 +0300 Subject: [PATCH] Fix #102 --- .../mixin/common/AnvilScreenHandlerMixin.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java index 89da01cd..016a78b3 100644 --- a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java @@ -35,23 +35,25 @@ public abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler imple private AnvilRecipe be_currentRecipe; private Property anvilLevel; - public AnvilScreenHandlerMixin(ScreenHandlerType type, int syncId, PlayerInventory playerInventory, - ScreenHandlerContext context) { - super(type, syncId, playerInventory, context); + public AnvilScreenHandlerMixin(int syncId, PlayerInventory playerInventory) { + super(ScreenHandlerType.ANVIL, syncId, playerInventory, ScreenHandlerContext.EMPTY); } - @Inject(method = "*", at = @At("TAIL")) + @Inject(method = "(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/screen/ScreenHandlerContext;)V", + at = @At("TAIL")) public void be_initAnvilLevel(int syncId, PlayerInventory inventory, ScreenHandlerContext context, CallbackInfo info) { - int anvLevel = context.run((world, blockPos) -> { - Block anvilBlock = world.getBlockState(blockPos).getBlock(); - if (anvilBlock instanceof EndAnvilBlock) { - return ((EndAnvilBlock) anvilBlock).getCraftingLevel(); - } - return 1; - }, 1); - Property anvilLevel = Property.create(); - anvilLevel.set(anvLevel); - this.anvilLevel = addProperty(anvilLevel); + if (context != ScreenHandlerContext.EMPTY) { + int anvLevel = context.run((world, blockPos) -> { + Block anvilBlock = world.getBlockState(blockPos).getBlock(); + if (anvilBlock instanceof EndAnvilBlock) { + return ((EndAnvilBlock) anvilBlock).getCraftingLevel(); + } + return 1; + }, 1); + Property anvilLevel = Property.create(); + anvilLevel.set(anvLevel); + this.anvilLevel = addProperty(anvilLevel); + } } @Shadow