From ddcead7c850777df8f9a24cada3cb2b53d771359 Mon Sep 17 00:00:00 2001 From: Burning_TNT <88144530+burningtnt@users.noreply.github.com> Date: Sun, 21 Jan 2024 00:29:06 +0800 Subject: [PATCH] Fix: version::compareTo compares the name, instead of the game version. (#2664) * Fix: version.compareTo compares the name, but not the game version. * Fix more. * update * update Co-authored-by: zkitefly --------- Co-authored-by: Glavo Co-authored-by: zkitefly --- .../main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java | 6 ++++-- .../java/org/jackhuang/hmcl/launch/DefaultLauncher.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java index bcb020fd2..26f288436 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java @@ -25,6 +25,7 @@ import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.i18n.I18n; import org.jackhuang.hmcl.util.io.FileUtils; import org.jackhuang.hmcl.util.platform.ManagedProcess; +import org.jackhuang.hmcl.util.versioning.VersionNumber; import java.io.File; import java.io.IOException; @@ -83,9 +84,10 @@ public final class HMCLGameLauncher extends DefaultLauncher { 1.11 ~ 12:zh_cn 时正常,zh_CN 时虽然显示了中文但语言设置会错误地显示选择英文 1.13+ :zh_cn 时正常,zh_CN 时自动切换为英文 */ - if (this.version.compareTo(new Version("1.1")) < 0) { + VersionNumber gameVersion = VersionNumber.asVersion(repository.getGameVersion(version).orElse("0.0")); + if (gameVersion.compareTo("1.1") < 0) { lang = null; - } else if (this.version.compareTo(new Version("1.10")) <= 0) { + } else if (gameVersion.compareTo("1.11") < 0) { lang = "zh_CN"; } else { lang = "zh_cn"; 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 50756a321..29fea8b83 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -256,7 +256,7 @@ public class DefaultLauncher extends Launcher { if (StringUtils.isNotBlank(options.getServerIp())) { String[] args = options.getServerIp().split(":"); - if (version.compareTo(new Version("1.20")) < 0) { + if (VersionNumber.VERSION_COMPARATOR.compare(repository.getGameVersion(version).orElse("0.0"), "1.20") < 0) { res.add("--server"); res.add(args[0]); res.add("--port");