From 1d0e3325b3e4bd9f57bd1c1458d6b2172df74305 Mon Sep 17 00:00:00 2001 From: Fff Date: Tue, 20 Oct 2026 23:26:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(gui):=20=E4=BF=AE=E5=A4=8D=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=89=8B=E5=86=8C=E5=90=8E=E6=9D=91=E6=B0=91=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E6=97=A0=E6=B3=95=E5=86=8D=E6=AC=A1=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 打开手册前同步关闭当前容器,释放服务端的村民交易状态 - 统一缓存文档与即时解析文档的界面切换流程 - 文档加载失败时保留原界面,手册内部跳转不重复关闭容器 --- .../resource/ageratum/client/AgeratumClient.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/anvilcraft/resource/ageratum/client/AgeratumClient.java b/src/main/java/dev/anvilcraft/resource/ageratum/client/AgeratumClient.java index 419ab2a..919cf7f 100644 --- a/src/main/java/dev/anvilcraft/resource/ageratum/client/AgeratumClient.java +++ b/src/main/java/dev/anvilcraft/resource/ageratum/client/AgeratumClient.java @@ -224,7 +224,7 @@ private static boolean openGuideOnClientInternal( if (preserveLabelState && currentGuideScreen != null) { screen.setLabelStatePreserved(currentGuideScreen); } - minecraft.setScreen(screen); + setGuideScreen(minecraft, screen); return true; } @@ -307,10 +307,17 @@ private static boolean parseDocumentAndSetScreen( if (preserveLabelState && currentGuideScreen != null) { screen.setLabelStatePreserved(currentGuideScreen); } - minecraft.setScreen(screen); + setGuideScreen(minecraft, screen); return true; } + private static void setGuideScreen(Minecraft minecraft, GuideScreen screen) { + if (minecraft.player != null && minecraft.player.containerMenu != minecraft.player.inventoryMenu) { + minecraft.player.closeContainer(); + } + minecraft.setScreen(screen); + } + public static boolean isPreviewLocation(ResourceLocation location) { return AgeratumConstants.Preview.NAMESPACE.equals(location.getNamespace()); }