From 28cf03bbf4f3cddef37ee6bb0981c678287adcb6 Mon Sep 17 00:00:00 2001 From: GaLicn <133291877+GaLicn@users.noreply.github.com> Date: Fri, 5 Dec 2025 23:33:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E9=94=AE=E4=B8=8B=E5=8D=95=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=B6=E8=87=AA=E5=8A=A8=E5=B0=86=E7=89=A9=E5=93=81?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=86=99=E5=85=A5=E6=90=9C=E7=B4=A2=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crafting/OpenCraftFromJeiC2SPacket.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/extendedae_plus/network/crafting/OpenCraftFromJeiC2SPacket.java b/src/main/java/com/extendedae_plus/network/crafting/OpenCraftFromJeiC2SPacket.java index 9a4af7c..173657c 100644 --- a/src/main/java/com/extendedae_plus/network/crafting/OpenCraftFromJeiC2SPacket.java +++ b/src/main/java/com/extendedae_plus/network/crafting/OpenCraftFromJeiC2SPacket.java @@ -3,11 +3,16 @@ package com.extendedae_plus.network.crafting; import appeng.api.networking.IGrid; import appeng.api.stacks.AEKey; import appeng.api.stacks.GenericStack; +import appeng.client.gui.me.common.MEStorageScreen; import appeng.items.tools.powered.WirelessTerminalItem; import appeng.menu.locator.MenuLocators; import appeng.menu.me.crafting.CraftAmountMenu; import com.extendedae_plus.menu.locator.CuriosItemLocator; +import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor; +import com.extendedae_plus.mixin.extendedae.accessor.GuiExPatternTerminalAccessor; import com.extendedae_plus.util.wireless.WirelessTerminalLocator; +import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; +import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; @@ -67,7 +72,27 @@ public class OpenCraftFromJeiC2SPacket { // 该 Key 是否可被网络自动合成 var craftingService = grid.getCraftingService(); - if (!craftingService.isCraftable(what)) return; + if (!craftingService.isCraftable(what)){ + String name=what.getDisplayName().getString(); + if (name == null || name.isEmpty()) return; + + // 写入 AE2 终端的搜索框 + var screen = Minecraft.getInstance().screen; + if (screen instanceof MEStorageScreen me) { + try { + MEStorageScreenAccessor acc = (MEStorageScreenAccessor) me; + acc.eap$getSearchField().setValue(name); + acc.eap$setSearchText(name); // 同步到 Repo 并刷新 + } catch (Throwable ignored) { + } + }else if (screen instanceof GuiExPatternTerminal gpt) { + try { + GuiExPatternTerminalAccessor acc = (GuiExPatternTerminalAccessor) gpt; + acc.getSearchOutField().setValue(name); + }catch (Throwable ignored) {} + } + return; + } var hand = located.getHand(); int slot = located.getSlotIndex();