Skip to content

Commit 187cdd8

Browse files
authored
paper: pick max build and not assume first is newest (#658)
1 parent 4366cc2 commit 187cdd8

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/main/java/me/itzg/helpers/paper/PaperDownloadsClient.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,20 @@ private Mono<VersionBuild> extractLatestVersionBuild(String project, RequestedCh
165165
return Flux.fromIterable(projectResponse.getVersions())
166166
.filter(versionResponse -> versionResponse.getBuilds() != null && !versionResponse.getBuilds().isEmpty())
167167
.concatMap(versionResponse ->
168-
getBuild(project, versionResponse.getVersion().getId(), versionResponse.getBuilds().get(0))
168+
getBuild(project, versionResponse.getVersion().getId(), getLatestBuild(versionResponse))
169169
.map(buildResponse -> new VersionAndBuildResponse(versionResponse, buildResponse))
170170
)
171171
.takeUntil(vAndB -> acceptableChannel(vAndB.buildResponse.getChannel(), requestedChannel))
172172
.last()
173173
.map(vAndB -> new VersionBuild(vAndB.versionResponse.getVersion().getId(), vAndB.buildResponse.getId()));
174174
}
175175

176+
private static Integer getLatestBuild(VersionResponse versionResponse) {
177+
return versionResponse.getBuilds().stream()
178+
.max(Integer::compare)
179+
.orElseThrow(() -> new GenericException("No builds found for version " + versionResponse.getVersion().getId()));
180+
}
181+
176182
private boolean acceptableChannel(Channel channel, RequestedChannel requestedChannel) {
177183
for (final Channel mapped : requestedChannel.getMappedTo()) {
178184
if (mapped.equals(channel)) {

src/test/resources/__files/paper/v3/projects_paper_versions_with_alphas.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,17 @@
3535
}
3636
},
3737
"builds": [
38-
49,
39-
48,
40-
47,
41-
46,
42-
45,
43-
44,
44-
42,
45-
41,
46-
40,
38+
37,
4739
38,
48-
37
40+
40,
41+
41,
42+
42,
43+
44,
44+
45,
45+
46,
46+
47,
47+
48,
48+
49
4949
]
5050
},
5151
{

0 commit comments

Comments
 (0)