From 06903b413e843d98aeadbbe2eb6ef9af2b328a65 Mon Sep 17 00:00:00 2001 From: LostLuma Date: Tue, 31 Dec 2024 00:45:48 +0100 Subject: [PATCH] Allow publishing for multiple Minecraft version ranges Signed-off-by: Lilly Rose Berner --- build.gradle.kts | 29 ++++++++++++++++++++++++++--- gradle.properties | 3 +-- gradle/libs.versions.toml | 2 +- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e7b59131..a75a19d0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,6 +43,7 @@ tasks.withType { } val modVersion = project.property("mod_version").toString() +val publishVersions = project.property("publish_versions").toString() val updateTitle = project.property("update_title").toString().uppercaseFirstChar() fun getVersionType(): ReleaseType { @@ -55,6 +56,16 @@ fun getVersionType(): ReleaseType { } } +fun isSnapshotVersion(version: String): Boolean { + return if (version.startsWith("a") || version.startsWith("b")) { + true // Alpha and Beta versions + } else if (version.contains("-") || version.contains("w")) { + true // Pre-releases, Release Candidates, Snapshots, etc. ... + } else { + false + } +} + publishMods { version = modVersion displayName = "Kit Tunes $updateTitle $modVersion" @@ -77,9 +88,21 @@ publishMods { accessToken = providers.environmentVariable("MODRINTH_SECRET") projectId = "AVOKl7hB" - minecraftVersionRange { - start = project.property("publish_version_min").toString() - end = project.property("publish_version_max").toString() + publishVersions.split(",").forEach { + val parts = it.split("-") + + if (parts.size != 2) { + throw RuntimeException("Invalid version range ${it}.") + } + + val a = parts[0] + val b = parts[1] + + minecraftVersionRange { + start = a + end = b + includeSnapshots = isSnapshotVersion(a) || isSnapshotVersion(b) + } } optional("fabric-api", "qsl", "modmenu") diff --git a/gradle.properties b/gradle.properties index 3a956d6b..bdd4146a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,5 +16,4 @@ mod_id = kit_tunes minecraft_version = 1.20.4 # Mod Publish Properties -publish_version_min = 1.17 -publish_version_max = 1.21.4 +publish_versions = b1.7.3-b1.7.3,1.16-1.21.4 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6c4c42d3..42a02723 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ annotations = "13.0" gson = "2.8.0" slf4j = "2.0.13" -mod_publish = "0.7.4" +mod_publish = "0.8.4" [libraries] minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }