diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java index b3ee01d..4c8d5e9 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java @@ -42,7 +42,7 @@ public abstract class PatternEncodingTermScreenMixin { // 复用已存在的按钮实例,避免重复创建 if (eap$uploadBtn == null) { eap$uploadBtn = new IconButton(btn -> PacketDistributor - .sendToServer(new com.extendedae_plus.network.RequestProvidersListC2SPacket())) { + .sendToServer(com.extendedae_plus.network.RequestProvidersListC2SPacket.INSTANCE)) { private final float eap$scale = 0.75f; // 约 12x12 @Override diff --git a/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java index f7607fe..16e6c67 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java @@ -1,58 +1,22 @@ package com.extendedae_plus.mixin.ae2WTlib; -import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; -import com.glodblock.github.extendedae.xmod.wt.ContainerUWirelessExPAT; -import com.glodblock.github.extendedae.xmod.wt.HostUWirelessExPAT; -import com.glodblock.github.glodium.network.packet.sync.IActionHolder; -import com.glodblock.github.glodium.network.packet.sync.Paras; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.player.Player; -import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import java.util.Map; -import java.util.function.Consumer; - /** * 为通用无线样板访问终端(AE2WTlib 集成)容器注册通用动作(CGenericPacket 分发) */ @Pseudo -@Mixin(ContainerUWirelessExPAT.class) -public abstract class ContainerUWirelessExPatternTerminalMixin implements IActionHolder { - - @Unique - private final Map> eap$actions = createHolder(); - - @Unique - private Player eap$player; +@Mixin(targets = "com.glodblock.github.extendedae.xmod.wt.ContainerUWirelessExPAT", remap = false) +public abstract class ContainerUWirelessExPatternTerminalMixin { + // 1.21 环境下,Glodium IActionHolder 已被移除,改为 no-op 保留占位,以便未来扩展。 // 明确目标构造签名:(int, Inventory, HostUWirelessExPAT) @Inject(method = "(ILnet/minecraft/world/entity/player/Inventory;Lcom/glodblock/github/extendedae/xmod/wt/HostUWirelessExPAT;)V", at = @At("TAIL"), remap = false) - private void init(int id, net.minecraft.world.entity.player.Inventory playerInventory, HostUWirelessExPAT host, CallbackInfo ci) { - this.eap$player = playerInventory.player; - // 注册上传动作:参数顺序必须与客户端 CGenericPacket 保持一致 - this.eap$actions.put("upload", p -> { - try { - Object o0 = p.get(0); - Object o1 = p.get(1); - int playerSlotIndex = (o0 instanceof Number) ? ((Number) o0).intValue() : Integer.parseInt(String.valueOf(o0)); - long providerId = (o1 instanceof Number) ? ((Number) o1).longValue() : Long.parseLong(String.valueOf(o1)); - var sp = (ServerPlayer) this.eap$player; - ExtendedAEPatternUploadUtil.uploadPatternToProvider(sp, playerSlotIndex, providerId); - } catch (Throwable t) { - } - }); - } - - - @NotNull - @Override - public Map> getActionMap() { - return this.eap$actions; + private void init(int id, net.minecraft.world.entity.player.Inventory playerInventory, Object host, CallbackInfo ci) { + // no-op } } diff --git a/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerWirelessExPatternTerminalMixin.java index 0ed00b5..687bf49 100644 --- a/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerWirelessExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerWirelessExPatternTerminalMixin.java @@ -1,7 +1,5 @@ package com.extendedae_plus.mixin.extendedae.container; -import com.glodblock.github.extendedae.xmod.wt.ContainerWirelessExPAT; -import com.glodblock.github.extendedae.xmod.wt.HostWirelessExPAT; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; import org.spongepowered.asm.mixin.injection.At; @@ -12,14 +10,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * 为无线样板访问终端容器注册通用动作(CGenericPacket 分发) */ @Pseudo -@Mixin(value = ContainerWirelessExPAT.class, remap = false) +@Mixin(targets = "com.glodblock.github.extendedae.xmod.wt.ContainerWirelessExPAT", remap = false) public abstract class ContainerWirelessExPatternTerminalMixin { // 1.21 版本中 ExtendedAE 不再使用 glodium IActionHolder。 // 保留空混入以便后续需要时扩展。 // 构造方法注入(显式签名),与 ExtendedAE 源码保持一致 @Inject(method = "(ILnet/minecraft/world/entity/player/Inventory;Lcom/glodblock/github/extendedae/xmod/wt/HostWirelessExPAT;)V", at = @At("TAIL"), require = 0, remap = false) - private void init$eap(int id, net.minecraft.world.entity.player.Inventory playerInventory, HostWirelessExPAT host, CallbackInfo ci) { + private void init$eap(int id, net.minecraft.world.entity.player.Inventory playerInventory, Object host, CallbackInfo ci) { // no-op } } diff --git a/src/main/resources/extendedaeplus.mixins.json b/src/main/resources/extendedaeplus.mixins.json index 5dbecfa..792c04e 100644 --- a/src/main/resources/extendedaeplus.mixins.json +++ b/src/main/resources/extendedaeplus.mixins.json @@ -27,7 +27,8 @@ "ae2.accessor.AEBaseScreenAccessor", "accessor.AbstractContainerScreenAccessor", "accessor.ScreenAccessor", - "extendedae.accessor.GuiExPatternTerminalAccessor" + "extendedae.accessor.GuiExPatternTerminalAccessor", + "ae2WTlib.WETScreenMixin" ], "injectors": { "defaultRequire": 1