diff --git a/src/main/java/me/itzg/helpers/forge/NeoForgeInstallerResolver.java b/src/main/java/me/itzg/helpers/forge/NeoForgeInstallerResolver.java index 9d2e43e8..613cc70e 100644 --- a/src/main/java/me/itzg/helpers/forge/NeoForgeInstallerResolver.java +++ b/src/main/java/me/itzg/helpers/forge/NeoForgeInstallerResolver.java @@ -14,6 +14,7 @@ import me.itzg.helpers.http.SharedFetch; import me.itzg.helpers.mvn.MavenMetadata; import me.itzg.helpers.mvn.MavenRepoApi; +import org.apache.maven.artifact.versioning.ComparableVersion; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -126,7 +127,10 @@ else if (requestedNeoForgeVersion == null || requestedNeoForgeVersion.equalsIgno } } }) - .reduce((s, s2) -> s2) + // pick the highest version from a or b + .reduce((a, b) -> + new ComparableVersion(a).compareTo(new ComparableVersion(b)) > 0 ? a : b + ) .orElse(null); return result != null ? new VersionPair(deriveMinecraftVersion(result), result) : null; diff --git a/src/test/java/me/itzg/helpers/forge/NeoForgeInstallerResolverTest.java b/src/test/java/me/itzg/helpers/forge/NeoForgeInstallerResolverTest.java index ad880f3e..58dae500 100644 --- a/src/test/java/me/itzg/helpers/forge/NeoForgeInstallerResolverTest.java +++ b/src/test/java/me/itzg/helpers/forge/NeoForgeInstallerResolverTest.java @@ -29,7 +29,7 @@ public static Stream resolve_args() { arguments("1.20.1", "latest", "1.20.1", "47.1.84"), arguments("1.21", "beta", "1.21", "21.0.142-beta"), arguments("latest", "beta", "1.21.4", "21.4.48-beta"), - arguments("latest", "latest", "1.21.1", "21.1.93") + arguments("latest", "latest", "1.21.3", "21.3.58") ); }