From 8efdc536ee65319f17db2215f3a7ac4bbe33a06e Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 15 Mar 2024 20:57:45 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#2934:=20=E4=BF=AE=E5=A4=8D=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=AF=BB=E5=8F=96=E8=BF=9C=E5=8F=A4=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7=E7=9A=84=E9=97=AE=E9=A2=98=20(#2936?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update * update --- .../main/java/org/jackhuang/hmcl/game/LauncherHelper.java | 4 ++-- .../src/main/java/org/jackhuang/hmcl/game/GameVersion.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index 9529f7831..a73dbe374 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -333,7 +333,8 @@ public final class LauncherHelper { } private static Task checkGameState(Profile profile, VersionSetting setting, Version version) { - GameVersionNumber gameVersion = GameVersionNumber.asGameVersion(profile.getRepository().getGameVersion(version)); + LibraryAnalyzer analyzer = LibraryAnalyzer.analyze(version, profile.getRepository().getGameVersion(version).orElse(null)); + GameVersionNumber gameVersion = GameVersionNumber.asGameVersion(analyzer.getVersion(LibraryAnalyzer.LibraryType.MINECRAFT)); if (setting.isNotCheckJVM()) { return Task.composeAsync(() -> setting.getJavaVersion(gameVersion, version)) @@ -417,7 +418,6 @@ public final class LauncherHelper { JavaVersionConstraint violatedMandatoryConstraint = null; List violatedSuggestedConstraints = null; - LibraryAnalyzer analyzer = LibraryAnalyzer.analyze(version, gameVersion.toString()); for (JavaVersionConstraint constraint : JavaVersionConstraint.ALL) { if (constraint.appliesToVersion(gameVersion, version, javaVersion, analyzer)) { if (!constraint.checkJava(gameVersion, version, javaVersion)) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameVersion.java index 68a0f3a70..7ea3635da 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameVersion.java @@ -104,8 +104,13 @@ final class GameVersion { if (minecraft != null) { try (InputStream is = gameJar.getInputStream(minecraft)) { Optional result = getVersionOfClassMinecraft(is); - if (result.isPresent()) + if (result.isPresent()) { + String version = result.get(); + if (version.startsWith("Beta ")) { + result = Optional.of("b" + version.substring("Beta ".length())); + } return result; + } } }