From 44e7d356fc53f1b9e11333af2d00b1262495165f Mon Sep 17 00:00:00 2001 From: GaLi <3096147684@qq.com> Date: Mon, 11 Aug 2025 09:49:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=80=8D=E5=A2=9E=E6=A0=B7=E6=9D=BF?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=A7=BB=E5=8A=A8=E5=88=B0ui=E5=8F=B3?= =?UTF-8?q?=E4=BE=A7=EF=BC=8C=E5=B9=B6=E4=B8=94=E6=B7=BB=E5=8A=A0x5?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mixin/GuiExPatternProviderMixin.java | 140 +++++++++++++++++- 1 file changed, 133 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java index 161faa5..0cc8580 100644 --- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java @@ -33,8 +33,11 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen { @@ -291,9 +364,11 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen { @@ -315,6 +390,29 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen { + try { + net.minecraft.client.Minecraft minecraft = net.minecraft.client.Minecraft.getInstance(); + if (minecraft.level != null && minecraft.player != null) { + net.minecraft.server.level.ServerPlayer serverPlayer = minecraft.getSingleplayerServer() + .getPlayerList().getPlayer(minecraft.player.getUUID()); + if (serverPlayer != null) { + executePatternScalingOnServer(serverPlayer, "MULTIPLY", 5.0); + } else { + System.out.println("ExtendedAE Plus: 无法获取服务器端玩家实例"); + } + } else { + System.out.println("ExtendedAE Plus: 单机服务器未启动或玩家为null"); + } + } catch (Exception e) { + System.out.println("ExtendedAE Plus: 执行样板x5倍增时发生错误:" + e.getMessage()); + e.printStackTrace(); + } + }, NewIcon.MULTIPLY5); + this.x5Button.setVisibility(true); // /10 按钮 - 单机模式直接调用服务器端逻辑 this.divideBy10Button = new ActionEPPButton((b) -> { @@ -336,10 +434,38 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen { + try { + net.minecraft.client.Minecraft minecraft = net.minecraft.client.Minecraft.getInstance(); + if (minecraft.level != null && minecraft.player != null) { + net.minecraft.server.level.ServerPlayer serverPlayer = minecraft.getSingleplayerServer() + .getPlayerList().getPlayer(minecraft.player.getUUID()); + if (serverPlayer != null) { + executePatternScalingOnServer(serverPlayer, "DIVIDE", 5.0); + } else { + System.out.println("ExtendedAE Plus: 无法获取服务器端玩家实例"); + } + } else { + System.out.println("ExtendedAE Plus: 单机服务器未启动或玩家为null"); + } + } catch (Exception e) { + System.out.println("ExtendedAE Plus: 执行样板/5时发生错误:" + e.getMessage()); + e.printStackTrace(); + } + }, NewIcon.DIVIDE5); + this.divideBy5Button.setVisibility(true); + + // 注册新增按钮 + this.addRenderableWidget(this.divideBy5Button); + this.addRenderableWidget(this.x5Button); + this.addRenderableWidget(this.divideBy10Button); + this.addRenderableWidget(this.x10Button); } + + // 注意:不再注入 Screen#init,避免混入在某些映射情况下失败导致 TransformerError /** * 在服务器端执行样板缩放操作(单机模式)