diff --git a/src/main/java/com/extendedae_plus/mixin/extendedae/client/HighlightButtonMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/client/HighlightButtonMixin.java index a95ea62..5321188 100644 --- a/src/main/java/com/extendedae_plus/mixin/extendedae/client/HighlightButtonMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/client/HighlightButtonMixin.java @@ -3,6 +3,7 @@ package com.extendedae_plus.mixin.extendedae.client; import com.glodblock.github.extendedae.client.button.HighlightButton; import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.Component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spongepowered.asm.mixin.Mixin; @@ -55,7 +56,23 @@ public abstract class HighlightButtonMixin { boolean posEqual = Objects.equals(btnPos, infoPos); boolean faceEqual = (btnFace == null && infoFace == null) || Objects.equals(btnFace, infoFace); if (posEqual && faceEqual) { - // 当前仅执行高亮和坐标提示功能,避免反射调用不存在的方法导致告警。 + // 选中当前供应器:使用 mixin 新增的 setter(通过反射调用以兼容编译期) + try { + long serverId = (long) entry.getKey(); + var setter = terminal.getClass().getMethod("setCurrentlyChoicePatternProvider", long.class); + setter.setAccessible(true); + setter.invoke(terminal, serverId); + + // 提示玩家已选择供应器 + if (minecraft.player != null) { + minecraft.player.displayClientMessage( + Component.literal("ExtendedAE Plus: 已选择样板供应器 (ID=" + serverId + "),可按住Shift左键快速上传样板"), + true + ); + } + } catch (Throwable t2) { + LOGGER.warn("设置当前样板供应器ID失败", t2); + } break; } } @@ -65,5 +82,4 @@ public abstract class HighlightButtonMixin { } } } -} - \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/mixin/extendedae/client/gui/GuiExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/client/gui/GuiExPatternTerminalMixin.java index 62b57d5..b1b6013 100644 --- a/src/main/java/com/extendedae_plus/mixin/extendedae/client/gui/GuiExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/client/gui/GuiExPatternTerminalMixin.java @@ -141,22 +141,16 @@ public abstract class GuiExPatternTerminalMixin extends AEBaseScreen ItemStack itemToUpload = this.minecraft.player.getInventory().getItem(playerSlotIndex); if (!itemToUpload.isEmpty() && PatternDetailsHelper.isEncodedPattern(itemToUpload)) { - // 通过反射调用 ExtendedAE 的网络发送(软依赖) + // 改用我们自己的网络包,直接将玩家槽位与选择的供应器ID发送到服务器 try { - Class EPPNetworkHandlerClass = Class.forName("com.glodblock.github.extendedae.network.EPPNetworkHandler"); - Object handlerInstance = EPPNetworkHandlerClass.getField("INSTANCE").get(null); - - Class packetClass = Class.forName("com.glodblock.github.glodium.network.packet.CGenericPacket"); - Constructor constructor = packetClass.getConstructor(String.class, Object[].class); - Object packet = constructor.newInstance("upload", new Object[]{playerSlotIndex, eap$currentlyChoicePatterProvider}); - - Class iMessage = Class.forName("com.glodblock.github.glodium.network.packet.IMessage"); - Method sendToServer = EPPNetworkHandlerClass.getMethod("sendToServer", iMessage); - - sendToServer.invoke(handlerInstance, packet); + PacketDistributor.sendToServer(new com.extendedae_plus.network.UploadInventoryPatternToProviderC2SPacket( + playerSlotIndex, + eap$currentlyChoicePatterProvider + )); } catch (Throwable t) { + // 理论上不会失败,若失败则给出简要提示 this.minecraft.player.displayClientMessage( - Component.literal("❌ ExtendedAE Plus: 未找到 ExtendedAE 网络支持(可能未安装或版本不兼容)"), + Component.literal("❌ ExtendedAE Plus: 客户端发送上传请求失败"), true ); } diff --git a/src/main/java/com/extendedae_plus/network/ModNetwork.java b/src/main/java/com/extendedae_plus/network/ModNetwork.java index 7ad85bb..b972155 100644 --- a/src/main/java/com/extendedae_plus/network/ModNetwork.java +++ b/src/main/java/com/extendedae_plus/network/ModNetwork.java @@ -20,6 +20,7 @@ public class ModNetwork { registrar.playToServer(CraftingMonitorOpenProviderC2SPacket.TYPE, CraftingMonitorOpenProviderC2SPacket.STREAM_CODEC, CraftingMonitorOpenProviderC2SPacket::handle); registrar.playToServer(OpenProviderUiC2SPacket.TYPE, OpenProviderUiC2SPacket.STREAM_CODEC, OpenProviderUiC2SPacket::handle); registrar.playToServer(UploadEncodedPatternToProviderC2SPacket.TYPE, UploadEncodedPatternToProviderC2SPacket.STREAM_CODEC, UploadEncodedPatternToProviderC2SPacket::handle); + registrar.playToServer(UploadInventoryPatternToProviderC2SPacket.TYPE, UploadInventoryPatternToProviderC2SPacket.STREAM_CODEC, UploadInventoryPatternToProviderC2SPacket::handle); // 新增:JEI 中键打开合成界面 & 无线终端拾取方块物品 registrar.playToServer(com.extendedae_plus.network.OpenCraftFromJeiC2SPacket.TYPE, com.extendedae_plus.network.OpenCraftFromJeiC2SPacket.STREAM_CODEC, diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator.png index 1f710c4..31e2dc3 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator_light.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator_light.png index 780ac2f..104909e 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator_light.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/1024x_accelerator_light.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator.png index 75a31be..323e42a 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator_light.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator_light.png index 788b3cc..e40d087 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator_light.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/16x_accelerator_light.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator.png index b68d485..f3af389 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator_light.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator_light.png index 27c1190..186330d 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator_light.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/256x_accelerator_light.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator.png index d670560..007babb 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator_light.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator_light.png index d51b2d3..e5a9117 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator_light.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/4x_accelerator_light.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator.png index c123c0d..41a611f 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator_light.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator_light.png index bbc939f..e0d558e 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator_light.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/64x_accelerator_light.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/light_base.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/light_base.png index 954b135..56f2e1f 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/light_base.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/light_base.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_corner.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_corner.png index 8670a44..38331e3 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_corner.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_corner.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_hor.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_hor.png index 43e9e62..4e8493a 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_hor.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_hor.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_ver.png b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_ver.png index d280740..f92f6f0 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_ver.png and b/src/main/resources/assets/extendedae_plus/textures/block/crafting/ring_side_ver.png differ