diff --git a/.gitignore b/.gitignore index c2ac9ed..29d1226 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,9 @@ # macOS .DS_Store + +# Eclipse files +/.classpath +/.project +/bin/ +/.settings/org.eclipse.buildship.core.prefs diff --git a/src/main/java/io/papermc/fill/gradle/task/PublishToFillTask.java b/src/main/java/io/papermc/fill/gradle/task/PublishToFillTask.java index 28bd508..a859454 100644 --- a/src/main/java/io/papermc/fill/gradle/task/PublishToFillTask.java +++ b/src/main/java/io/papermc/fill/gradle/task/PublishToFillTask.java @@ -208,7 +208,7 @@ private List gatherCommits(Git git, FillExtension extension) { final RevCommit currentCommit = revWalk.parseCommit(git.getRepository().exactRef(Constants.HEAD).getObjectId()); revWalk.markStart(currentCommit); - final List builds = this.fetchLastVersionBuilds(extension); + final List builds = this.fetchPreviousBuilds(extension); if (!builds.isEmpty()) { // not every build might have commits, we have to find the last one that did have some BuildResponse lastBuildWithCommits = null; @@ -239,17 +239,30 @@ private List gatherCommits(Git git, FillExtension extension) { return commits; } - private List fetchLastVersionBuilds(final FillExtension extension) { + private List fetchPreviousBuilds(final FillExtension extension) { + final String currentVersion = extension.getVersion().get(); final VersionsResponse versions = this.getVersions(extension); - String lastVersionWithBuild = null; + + // Check if the current version already has builds for (final VersionResponse version : versions.versions()) { - if (!version.builds().isEmpty()) { - lastVersionWithBuild = version.version().id(); - break; + if (version.version().id().equals(currentVersion) && !version.builds().isEmpty()) { + return this.fetchCurrentVersionBuilds(extension, currentVersion); } } - if (lastVersionWithBuild != null) { - return this.getBuilds(extension, lastVersionWithBuild); + + // For new versions without builds, fall back to finding the last version with builds + return this.fetchLastVersionBuilds(extension, versions); + } + + private List fetchCurrentVersionBuilds(final FillExtension extension, final String version) { + return this.getBuilds(extension, version); + } + + private List fetchLastVersionBuilds(final FillExtension extension, final VersionsResponse versions) { + for (final VersionResponse version : versions.versions()) { + if (!version.builds().isEmpty()) { + return this.getBuilds(extension, version.version().id()); + } } return List.of(); }