From 66db7d20ccefee2f5cbee34eab5742c97fb4e134 Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sat, 25 Oct 2025 22:40:15 -0500 Subject: [PATCH] paper: pick max build and not assume first is newest --- .../helpers/paper/PaperDownloadsClient.java | 8 +++++++- .../projects_paper_versions_with_alphas.json | 20 +++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main/java/me/itzg/helpers/paper/PaperDownloadsClient.java b/src/main/java/me/itzg/helpers/paper/PaperDownloadsClient.java index 4ae48a78..acf7a7dc 100644 --- a/src/main/java/me/itzg/helpers/paper/PaperDownloadsClient.java +++ b/src/main/java/me/itzg/helpers/paper/PaperDownloadsClient.java @@ -165,7 +165,7 @@ private Mono extractLatestVersionBuild(String project, RequestedCh return Flux.fromIterable(projectResponse.getVersions()) .filter(versionResponse -> versionResponse.getBuilds() != null && !versionResponse.getBuilds().isEmpty()) .concatMap(versionResponse -> - getBuild(project, versionResponse.getVersion().getId(), versionResponse.getBuilds().get(0)) + getBuild(project, versionResponse.getVersion().getId(), getLatestBuild(versionResponse)) .map(buildResponse -> new VersionAndBuildResponse(versionResponse, buildResponse)) ) .takeUntil(vAndB -> acceptableChannel(vAndB.buildResponse.getChannel(), requestedChannel)) @@ -173,6 +173,12 @@ private Mono extractLatestVersionBuild(String project, RequestedCh .map(vAndB -> new VersionBuild(vAndB.versionResponse.getVersion().getId(), vAndB.buildResponse.getId())); } + private static Integer getLatestBuild(VersionResponse versionResponse) { + return versionResponse.getBuilds().stream() + .max(Integer::compare) + .orElseThrow(() -> new GenericException("No builds found for version " + versionResponse.getVersion().getId())); + } + private boolean acceptableChannel(Channel channel, RequestedChannel requestedChannel) { for (final Channel mapped : requestedChannel.getMappedTo()) { if (mapped.equals(channel)) { diff --git a/src/test/resources/__files/paper/v3/projects_paper_versions_with_alphas.json b/src/test/resources/__files/paper/v3/projects_paper_versions_with_alphas.json index e7a347dd..2b15aa0f 100644 --- a/src/test/resources/__files/paper/v3/projects_paper_versions_with_alphas.json +++ b/src/test/resources/__files/paper/v3/projects_paper_versions_with_alphas.json @@ -35,17 +35,17 @@ } }, "builds": [ - 49, - 48, - 47, - 46, - 45, - 44, - 42, - 41, - 40, + 37, 38, - 37 + 40, + 41, + 42, + 44, + 45, + 46, + 47, + 48, + 49 ] }, {