diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-03-10 02:45:09 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-03-10 02:45:09 +0800 |
| commit | 0ef7d4d944b0683250f905f856c08e759ae9355d (patch) | |
| tree | 88376b527c5c86fd24c0bf2b6ad4f740d20cc4d0 /src/main/java | |
| parent | 5c83be1590d4e1ea706ab7b57d20253f95dcbd1b (diff) | |
| download | RoughlyEnoughItems-0ef7d4d944b0683250f905f856c08e759ae9355d.tar.gz RoughlyEnoughItems-0ef7d4d944b0683250f905f856c08e759ae9355d.tar.bz2 RoughlyEnoughItems-0ef7d4d944b0683250f905f856c08e759ae9355d.zip | |
ScreenWithHandler refractor, why must we suffer
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java')
39 files changed, 270 insertions, 234 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 17afa2d4a..7145848f8 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -40,22 +40,22 @@ import net.fabricmc.loader.api.ModContainer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CraftingTableScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.gui.screen.recipebook.RecipeBookGhostSlots; import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.TexturedButtonWidget; import net.minecraft.client.resource.language.I18n; -import net.minecraft.container.CraftingTableContainer; -import net.minecraft.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeManager; +import net.minecraft.screen.CraftingTableScreenHandler; +import net.minecraft.screen.slot.Slot; import net.minecraft.text.LiteralText; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; @@ -205,11 +205,11 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { } ghostSlots.addSlot(Ingredient.ofItems(Items.STONE), 381203812, 12738291); - CraftingTableContainer container = ((CraftingTableScreen) currentScreen).getContainer(); + CraftingTableScreenHandler screenHandler = ((CraftingTableScreen) currentScreen).getScreenHandler(); for (int i = 0; i < input.size(); i++) { List<ItemStack> stacks = input.get(i); if (!stacks.isEmpty()) { - Slot slot = container.getSlot(i + container.getCraftingResultSlotIndex() + 1); + Slot slot = screenHandler.getSlot(i + screenHandler.getCraftingResultSlotIndex() + 1); ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.xPosition, slot.yPosition); } } @@ -253,7 +253,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { continue; ActionResult result = decider.shouldScreenBeOverlayed(screen); if (result != ActionResult.PASS) - return result == ActionResult.FAIL || ScreenHelper.getLastContainerScreenHooks() == null; + return result == ActionResult.FAIL || ScreenHelper.getLastScreenWithHandlerHooks() == null; } return true; } @@ -263,7 +263,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { long[] lastSync = {-1}; ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> syncRecipes(lastSync)); ClothClientHooks.SCREEN_ADD_BUTTON.register((minecraftClient, screen, abstractButtonWidget) -> { - if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof ContainerScreen && abstractButtonWidget instanceof TexturedButtonWidget) + if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof ScreenWithHandler && abstractButtonWidget instanceof TexturedButtonWidget) if (((RecipeBookButtonWidgetHooks) abstractButtonWidget).rei_getTexture().equals(recipeButtonTex)) return ActionResult.FAIL; return ActionResult.PASS; @@ -273,8 +273,8 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { return; if (shouldReturn(screen.getClass())) return; - if (screen instanceof ContainerScreen) - ScreenHelper.setLastContainerScreen((ContainerScreen<?>) screen); + if (screen instanceof ScreenWithHandler) + ScreenHelper.setLastScreenWithHandler((ScreenWithHandler<?>) screen); boolean alreadyAdded = false; for (Element element : Lists.newArrayList(screenHooks.cloth_getChildren())) if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass())) @@ -335,9 +335,9 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { return ActionResult.PASS; if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2)) return ActionResult.SUCCESS; - if (screen instanceof ContainerScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer()) + if (screen instanceof ScreenWithHandler && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer()) if (i == 258 && minecraftClient.options.keyInventory.matchesKey(i, i1)) { - minecraftClient.player.closeContainer(); + minecraftClient.player.closeHandledScreen(); return ActionResult.SUCCESS; } return ActionResult.PASS; diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index 429d69896..2519bace6 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -30,10 +30,10 @@ import me.shedaniel.rei.server.InputSlotCrafter; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.container.Container; -import net.minecraft.container.CraftingContainer; -import net.minecraft.container.PlayerContainer; import net.minecraft.item.ItemStack; +import net.minecraft.screen.CraftingScreenHandler; +import net.minecraft.screen.PlayerScreenHandler; +import net.minecraft.screen.ScreenHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; @@ -79,8 +79,8 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { ServerSidePacketRegistry.INSTANCE.register(MOVE_ITEMS_PACKET, (packetContext, packetByteBuf) -> { Identifier category = packetByteBuf.readIdentifier(); ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer(); - Container container = player.container; - PlayerContainer playerContainer = player.playerContainer; + ScreenHandler screenHandler = player.currentScreenHandler; + PlayerScreenHandler playerScreenHandler = player.playerScreenHandler; try { boolean shift = packetByteBuf.readBoolean(); Map<Integer, List<ItemStack>> input = Maps.newHashMap(); @@ -94,9 +94,9 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { input.put(i, list); } try { - InputSlotCrafter.start(category, container, player, input, shift); + InputSlotCrafter.start(category, screenHandler, player, input, shift); } catch (InputSlotCrafter.NotEnoughMaterialsException e) { - if (!(container instanceof CraftingContainer)) + if (!(screenHandler instanceof CraftingScreenHandler)) return; PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer()); buf.writeInt(input.size()); diff --git a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java index 4b28e239f..70ba2dd55 100644 --- a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java +++ b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java @@ -28,10 +28,9 @@ import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Container; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.ScreenHandler; import org.jetbrains.annotations.ApiStatus; -import org.spongepowered.asm.mixin.injection.Inject; import java.util.function.Supplier; @@ -83,7 +82,7 @@ public interface AutoTransferHandler { } interface Context { - static Context create(boolean actuallyCrafting, ContainerScreen<?> containerScreen, RecipeDisplay recipeDisplay) { + static Context create(boolean actuallyCrafting, ScreenWithHandler<?> containerScreen, RecipeDisplay recipeDisplay) { return new ContextImpl(actuallyCrafting, containerScreen, () -> recipeDisplay); } @@ -93,14 +92,28 @@ public interface AutoTransferHandler { boolean isActuallyCrafting(); - ContainerScreen<?> getContainerScreen(); + ScreenWithHandler<?> getScreenWithHandler(); + + @Deprecated + @ApiStatus.ScheduledForRemoval + default ScreenWithHandler<?> getContainerScreen() { + return getScreenWithHandler(); + } RecipeDisplay getRecipe(); - default Container getContainer() { - return getContainerScreen().getContainer(); + @Deprecated + @ApiStatus.ScheduledForRemoval + default ScreenHandler getContainer() { + return getScreenHandler(); + } + + default ScreenHandler getScreenHandler() { + return getScreenWithHandler().getScreenHandler(); } + @Deprecated + @ApiStatus.ScheduledForRemoval default ContainerScreenOverlay getOverlay() { return ScreenHelper.getLastOverlay(); } @@ -161,12 +174,12 @@ public interface AutoTransferHandler { @ApiStatus.Internal final class ContextImpl implements Context { boolean actuallyCrafting; - ContainerScreen<?> containerScreen; + ScreenWithHandler<?> screenWithHandler; Supplier<RecipeDisplay> recipeDisplaySupplier; - private ContextImpl(boolean actuallyCrafting, ContainerScreen<?> containerScreen, Supplier<RecipeDisplay> recipeDisplaySupplier) { + private ContextImpl(boolean actuallyCrafting, ScreenWithHandler<?> screenWithHandler, Supplier<RecipeDisplay> recipeDisplaySupplier) { this.actuallyCrafting = actuallyCrafting; - this.containerScreen = containerScreen; + this.screenWithHandler = screenWithHandler; this.recipeDisplaySupplier = recipeDisplaySupplier; } @@ -176,8 +189,8 @@ public interface AutoTransferHandler { } @Override - public ContainerScreen<?> getContainerScreen() { - return containerScreen; + public ScreenWithHandler<?> getScreenWithHandler() { + return screenWithHandler; } @Override diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java index 9d58d5530..dfb2db0bd 100644 --- a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java +++ b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java @@ -25,7 +25,7 @@ package me.shedaniel.rei.api; import me.shedaniel.math.api.Rectangle; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeManager; import net.minecraft.util.Identifier; @@ -220,7 +220,7 @@ public interface RecipeHelper { */ void registerLiveRecipeGenerator(LiveRecipeGenerator<?> liveRecipeGenerator); - void registerScreenClickArea(Rectangle rectangle, Class<? extends ContainerScreen<?>> screenClass, Identifier... categories); + void registerScreenClickArea(Rectangle rectangle, Class<? extends ScreenWithHandler<?>> screenClass, Identifier... categories); <T extends Recipe<?>> void registerRecipes(Identifier category, Class<T> recipeClass, Function<T, RecipeDisplay> mappingFunction); @@ -232,7 +232,7 @@ public interface RecipeHelper { boolean arePluginsLoading(); interface ScreenClickArea { - Class<? extends ContainerScreen> getScreenClass(); + Class<? extends ScreenWithHandler> getScreenClass(); Rectangle getRectangle(); diff --git a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java index 900faa39e..e5ff9aa2c 100644 --- a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java +++ b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java @@ -24,7 +24,7 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.server.ContainerInfo; -import net.minecraft.container.Container; +import net.minecraft.screen.ScreenHandler; import java.util.List; @@ -40,6 +40,6 @@ public interface TransferRecipeDisplay extends RecipeDisplay { */ int getHeight(); - List<List<EntryStack>> getOrganisedInputEntries(ContainerInfo<Container> containerInfo, Container container); + List<List<EntryStack>> getOrganisedInputEntries(ContainerInfo<ScreenHandler> containerInfo, ScreenHandler container); } diff --git a/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java b/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java index f36a279b6..f13cefede 100644 --- a/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java @@ -49,8 +49,8 @@ public class ConfigReloadingScreen extends Screen { public void render(int int_1, int int_2, float float_1) { this.renderDirtBackground(0); if (!RecipeHelper.getInstance().arePluginsLoading()) - minecraft.openScreen(parent); - this.drawCenteredString(this.font, I18n.translate("text.rei.config.is.reloading"), this.width / 2, this.height / 2 - 50, 16777215); + client.openScreen(parent); + this.drawCenteredString(this.textRenderer, I18n.translate("text.rei.config.is.reloading"), this.width / 2, this.height / 2 - 50, 16777215); String string_3; switch ((int) (Util.getMeasuringTimeMs() / 300L % 4L)) { case 0: @@ -64,7 +64,7 @@ public class ConfigReloadingScreen extends Screen { case 2: string_3 = "o o O"; } - this.drawCenteredString(this.font, string_3, this.width / 2, this.height / 2 - 41, 8421504); + this.drawCenteredString(this.textRenderer, string_3, this.width / 2, this.height / 2 - 41, 8421504); super.render(int_1, int_2, float_1); } diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index f41298751..edce9fea3 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -40,7 +40,7 @@ import me.shedaniel.rei.utils.CollectionUtils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.resource.language.I18n; @@ -50,8 +50,8 @@ import net.minecraft.client.util.Window; import net.minecraft.client.util.math.Matrix4f; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.world.ClientWorld; -import net.minecraft.container.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; import net.minecraft.sound.SoundEvents; import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; @@ -78,7 +78,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { public final TriConsumer<Integer, Integer, Float> renderTooltipCallback = (x, y, aFloat) -> { RenderSystem.disableRescaleNormal(); RenderSystem.disableDepthTest(); - setBlitOffset(999); + setZOffset(999); this.fillGradient(x - 3, y - 4, x + tooltipWidth + 3, y - 3, -267386864, -267386864); this.fillGradient(x - 3, y + tooltipHeight + 3, x + tooltipWidth + 3, y + tooltipHeight + 4, -267386864, -267386864); this.fillGradient(x - 3, y - 3, x + tooltipWidth + 3, y + tooltipHeight + 3, -267386864, -267386864); @@ -91,14 +91,14 @@ public class ContainerScreenOverlay extends WidgetWithBounds { int currentY = y; MatrixStack matrixStack_1 = new MatrixStack(); VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(Tessellator.getInstance().getBuffer()); - matrixStack_1.translate(0.0D, 0.0D, getBlitOffset()); + matrixStack_1.translate(0.0D, 0.0D, getZOffset()); Matrix4f matrix4f_1 = matrixStack_1.peek().getModel(); for (int lineIndex = 0; lineIndex < tooltipLines.size(); lineIndex++) { font.draw(tooltipLines.get(lineIndex), x, currentY, -1, true, matrix4f_1, immediate, false, 0, 15728880); currentY += lineIndex == 0 ? 12 : 10; } immediate.draw(); - setBlitOffset(0); + setZOffset(0); RenderSystem.enableDepthTest(); RenderSystem.enableRescaleNormal(); }; @@ -180,7 +180,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating()); return; } - ConfigManager.getInstance().openConfigScreen(ScreenHelper.getLastContainerScreen()); + ConfigManager.getInstance().openConfigScreen(ScreenHelper.getLastScreenWithHandler()); } @Override @@ -189,7 +189,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { @Override public void lateRender(int mouseX, int mouseY, float delta) { - setBlitOffset(600); + setZOffset(600); super.render(mouseX, mouseY, delta); Rectangle bounds = getBounds(); if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) { @@ -201,7 +201,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); blit(bounds.x + 3, bounds.y + 3, 0, 0, 14, 14); - setBlitOffset(0); + setZOffset(0); } @Override @@ -362,7 +362,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { VillagerRecipeViewingScreen widget = (VillagerRecipeViewingScreen) MinecraftClient.getInstance().currentScreen; return new Rectangle(widget.bounds.x, window.getScaledHeight() - 22, widget.bounds.width - widthRemoved, 18); } - return new Rectangle(ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft(), window.getScaledHeight() - 22, ScreenHelper.getLastContainerScreenHooks().rei_getContainerWidth() - widthRemoved, 18); + return new Rectangle(ScreenHelper.getLastScreenWithHandlerHooks().rei_getContainerLeft(), window.getScaledHeight() - 22, ScreenHelper.getLastScreenWithHandlerHooks().rei_getContainerWidth() - widthRemoved, 18); } private Rectangle getCraftableToggleArea() { @@ -410,19 +410,19 @@ public class ContainerScreenOverlay extends WidgetWithBounds { ENTRY_LIST_WIDGET.updateSearch(ScreenHelper.getSearchField().getText(), true); } if (OverlaySearchField.isSearching) { - setBlitOffset(200); - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) { + setZOffset(200); + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; int left = hooks.rei_getContainerLeft(), top = hooks.rei_getContainerTop(); - for (Slot slot : ((ContainerScreen<?>) MinecraftClient.getInstance().currentScreen).getContainer().slots) + for (Slot slot : ((ScreenWithHandler<?>) MinecraftClient.getInstance().currentScreen).getScreenHandler().slots) if (!slot.hasStack() || !ENTRY_LIST_WIDGET.canLastSearchTermsBeAppliedTo(EntryStack.create(slot.getStack()))) fillGradient(left + slot.xPosition, top + slot.yPosition, left + slot.xPosition + 16, top + slot.yPosition + 16, -601874400, -601874400); } - setBlitOffset(0); + setZOffset(0); } RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); this.renderWidgets(mouseX, mouseY, delta); - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; for (RecipeHelper.ScreenClickArea area : RecipeHelper.getInstance().getScreenClickAreas()) if (area.getScreenClass().equals(MinecraftClient.getInstance().currentScreen.getClass())) @@ -527,9 +527,9 @@ public class ContainerScreenOverlay extends WidgetWithBounds { return true; } ItemStack itemStack = null; - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) - if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty()) - itemStack = ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack(); + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler) + if (ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot().getStack().isEmpty()) + itemStack = ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot().getStack(); if (itemStack != null && !itemStack.isEmpty()) { if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(int_1, int_2)) return ClientHelper.getInstance().executeRecipeKeyBind(itemStack); @@ -569,7 +569,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { public boolean mouseClicked(double double_1, double double_2, int int_1) { if (!ScreenHelper.isOverlayVisible()) return false; - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; for (RecipeHelper.ScreenClickArea area : RecipeHelper.getInstance().getScreenClickAreas()) if (area.getScreenClass().e |
