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 61725887c..79205c479 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -522,6 +522,9 @@ public final class LauncherHelper { case MODDED_JAVA_17: suggestions.add(i18n("launch.advice.modded_java", 17, gameVersion)); break; + case MODDED_JAVA_21: + suggestions.add(i18n("launch.advice.modded_java", 21, gameVersion)); + break; case VANILLA_JAVA_8_51: suggestions.add(i18n("launch.advice.java8_51_1_13")); break; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java index dc7abb453..ed1889fcc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java @@ -62,7 +62,14 @@ public enum JavaVersionConstraint { return analyzer != null && analyzer.has(LibraryAnalyzer.LibraryType.FORGE); } }, - MODDED_JAVA_17(false, GameVersionNumber.atLeast("1.18"), VersionNumber.between("17", "17.999")) { + MODDED_JAVA_17(false, GameVersionNumber.between("1.18", "1.20.4"), VersionNumber.between("17", "17.999")) { + @Override + protected boolean appliesToVersionImpl(GameVersionNumber gameVersionNumber, @Nullable Version version, + @Nullable JavaRuntime java, @Nullable LibraryAnalyzer analyzer) { + return analyzer != null && analyzer.has(LibraryAnalyzer.LibraryType.FORGE); + } + }, + MODDED_JAVA_21(false, GameVersionNumber.atLeast("1.20.5"), VersionNumber.between("21", "21.999")) { @Override protected boolean appliesToVersionImpl(GameVersionNumber gameVersionNumber, @Nullable Version version, @Nullable JavaRuntime java, @Nullable LibraryAnalyzer analyzer) {