From 8a2c4a21d8723fdec552e8ff523dfc85205aaf1d Mon Sep 17 00:00:00 2001 From: Lyizai Date: Mon, 17 Aug 2026 11:12:20 +0000 Subject: [PATCH] =?UTF-8?q?v1.1.3:=20GUI=E5=B7=A6=E4=B8=8A=E8=A7=92?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0Git=E4=BB=93=E5=BA=93=E4=B8=8E=E5=AE=98?= =?UTF-8?q?=E7=BD=91=E9=93=BE=E6=8E=A5=E6=8C=89=E9=92=AE=EF=BC=88=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=9C=A8=E7=B3=BB=E7=BB=9F=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E6=89=93=E5=BC=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- .../java/autostore/client/gui/AutoStoreGui.java | 16 ++++++++++++++++ src/main/resources/fabric.mod.json | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 272d4a9..58e2393 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## 安装 1. 安装 Fabric Loader 0.16.14+ 和 Fabric API -2. 将 `autostore-1.1.2.jar` 放入 `.minecraft/mods/` 目录 +2. 将 `autostore-1.1.3.jar` 放入 `.minecraft/mods/` 目录 3. 启动游戏,按 `Ctrl+R` 打开 GUI ## 构建 @@ -25,4 +25,4 @@ ./build_mod.sh ``` -输出文件:`autostore-1.1.2.jar` +输出文件:`autostore-1.1.3.jar` diff --git a/src/main/java/autostore/client/gui/AutoStoreGui.java b/src/main/java/autostore/client/gui/AutoStoreGui.java index 4ee0eb5..ad36fe8 100644 --- a/src/main/java/autostore/client/gui/AutoStoreGui.java +++ b/src/main/java/autostore/client/gui/AutoStoreGui.java @@ -17,6 +17,7 @@ import java.util.List; import java.util.function.Consumer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.text.Text; import net.minecraft.client.font.TextRenderer; @@ -38,6 +39,9 @@ import net.minecraft.text.StringVisitable; */ public final class AutoStoreGui extends Screen { + // ---- 外部链接 ---- + private static final String GIT_REPO_URL = "https://git.bgjq.top/Lyizai/AutoStore/"; + private static final String HOMEPAGE_URL = "https://8w.bgjq.top/"; private final AutoStoreModClient mod; private final ExpansionConfig config; private final ExpansionController controller; @@ -99,6 +103,9 @@ extends Screen { // ===== 顶部控制按钮 ===== int topX = this.panelX; + // 左上角外部链接按钮:Git 仓库与官网(点击在系统浏览器打开) + this.addDrawableChild(ButtonWidget.builder(Text.literal((String)"Git \u4ed3\u5e93"), button -> this.openUrl(GIT_REPO_URL)).dimensions(this.mapX, 8, 70, 16).build()); + this.addDrawableChild(ButtonWidget.builder(Text.literal((String)"\u5b98\u7f51"), button -> this.openUrl(HOMEPAGE_URL)).dimensions(this.mapX + 76, 8, 50, 16).build()); ButtonWidget startButton = ButtonWidget.builder(Text.literal((String)"\u5f00\u59cb\u81ea\u52a8\u6269\u5730"), button -> this.start()).dimensions(topX, 34, 154, 30).build(); ButtonWidget stopButton = ButtonWidget.builder(Text.literal((String)"\u505c\u6b62"), button -> this.controller.stop()).dimensions(topX + 160, 34, 74, 30).build(); this.addDrawableChild(startButton); @@ -158,6 +165,15 @@ extends Screen { this.initializeMapView(); } + /** 在系统默认浏览器中打开外部链接(失败时静默忽略) */ + private void openUrl(String url) { + try { + Util.getOperatingSystem().open(new java.net.URI(url)); + } catch (Exception ignored) { + // 链接打开失败不影响界面正常使用 + } + } + /** 创建整数输入框(初始值为 value,最多 12 位) */ private TextFieldWidget numberField(int value, int x, int y, int width) { TextFieldWidget field = new TextFieldWidget(this.textRenderer, x, y, width, 20, Text.literal((String)"")); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 472fa47..c0ee746 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1 +1 @@ -{"schemaVersion":1,"id":"autostore","version":"1.1.2","name":"AutoStore","description":"","authors":[],"contact":{},"license":"All-Rights-Reserved","environment":"client","entrypoints":{"fabric-datagen":["autostore.client.AutoStoreModDataGenerator"],"client":["autostore.client.AutoStoreModClient"],"main":["autostore.AutoStoreMod"]},"mixins":["autostore.mixins.json",{"config":"autostore.client.mixins.json","environment":"client"}],"depends":{"fabricloader":">=0.16.14","fabric-api":"*","minecraft":"1.21.4"},"jars":[{"file":"META-INF/jars/baritone-api-fabric-1.13.1.jar"}]} \ No newline at end of file +{"schemaVersion":1,"id":"autostore","version":"1.1.3","name":"AutoStore","description":"","authors":[],"contact":{},"license":"All-Rights-Reserved","environment":"client","entrypoints":{"fabric-datagen":["autostore.client.AutoStoreModDataGenerator"],"client":["autostore.client.AutoStoreModClient"],"main":["autostore.AutoStoreMod"]},"mixins":["autostore.mixins.json",{"config":"autostore.client.mixins.json","environment":"client"}],"depends":{"fabricloader":">=0.16.14","fabric-api":"*","minecraft":"1.21.4"},"jars":[{"file":"META-INF/jars/baritone-api-fabric-1.13.1.jar"}]} \ No newline at end of file