From 7f852080cdff160d6d30b86921a9ad0e558ca4c3 Mon Sep 17 00:00:00 2001 From: Damon Lu <59256766+WhatDamon@users.noreply.github.com> Date: Sat, 20 Dec 2025 20:32:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=20macOS=20=E4=B8=8A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=84=9A=E6=9C=AC=E7=9A=84=E5=90=8E=E7=BC=80?= =?UTF-8?q?=20`.command`=20(#4927)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jackhuang/hmcl/ui/versions/Versions.java | 5 +++++ HMCL/src/main/resources/assets/lang/I18N.properties | 1 + HMCL/src/main/resources/assets/lang/I18N_zh.properties | 1 + HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties | 1 + .../main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java | 4 ++-- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java index 50656aef2..9eccce3bc 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java @@ -209,6 +209,11 @@ public final class Versions { if (Files.isDirectory(repository.getRunDirectory(id))) chooser.setInitialDirectory(repository.getRunDirectory(id).toFile()); chooser.setTitle(i18n("version.launch_script.save")); + if (OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) { + chooser.getExtensionFilters().add( + new FileChooser.ExtensionFilter(i18n("extension.command"), "*.command") + ); + } chooser.getExtensionFilters().add(OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS ? new FileChooser.ExtensionFilter(i18n("extension.bat"), "*.bat") : new FileChooser.ExtensionFilter(i18n("extension.sh"), "*.sh")); diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index aea95ae01..ed938bc1f 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -376,6 +376,7 @@ extension.mod=Mod File extension.png=Image File extension.ps1=Windows PowerShell Script extension.sh=Shell Script +extension.command=macOS Shell Script fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher cannot create the HMCL directory (%s). Please move HMCL to another location and reopen it. fatal.javafx.incompatible=Missing JavaFX environment.\n\ diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index a4e00d7c1..edd551b5a 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -374,6 +374,7 @@ extension.mod=模組檔案 extension.png=圖片檔案 extension.ps1=PowerShell 指令碼 extension.sh=Bash 指令碼 +extension.command=macOS Shell 指令碼 fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 無法建立 HMCL 資料夾 (%s),請將 HMCL 移動至其他位置再開啟。 fatal.javafx.incompatible=缺少 JavaFX 執行環境。\nHMCL 無法在低於 Java 11 的 Java 環境上自行補全 JavaFX 執行環境。請更新到 Java 11 或更高版本。 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 090775375..3652fca85 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -383,6 +383,7 @@ extension.mod=模组文件 extension.png=图片文件 extension.ps1=PowerShell 脚本 extension.sh=Bash 脚本 +extension.command=macOS Shell 脚本 fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 无法创建 HMCL 文件夹 (%s),请将 HMCL 移动至其他位置再启动。\n如遇到问题,你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。 fatal.javafx.incompatible=缺少 JavaFX 运行环境。\nHello Minecraft! Launcher 无法在低于 Java 11 的 Java 环境上自行补全 JavaFX 运行环境。请更新到 Java 11 或更高版本。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。 diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java index 3c2f4ed91..d02fd574a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -619,8 +619,8 @@ public class DefaultLauncher extends Launcher { if (!usePowerShell) { if (isWindows && !scriptExtension.equals("bat")) throw new IllegalArgumentException("The extension of " + scriptFile + " is not 'bat' or 'ps1' in Windows"); - else if (!isWindows && !scriptExtension.equals("sh")) - throw new IllegalArgumentException("The extension of " + scriptFile + " is not 'sh' or 'ps1' in macOS/Linux"); + else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals("command"))) + throw new IllegalArgumentException("The extension of " + scriptFile + " is not 'sh', 'ps1' or 'command' in macOS/Linux"); } final Command commandLine = generateCommandLine(nativeFolder);