diff --git a/jfmod/build.gradle.kts b/jfmod/build.gradle.kts index cd035e2..f546963 100644 --- a/jfmod/build.gradle.kts +++ b/jfmod/build.gradle.kts @@ -5,5 +5,5 @@ plugins { dependencies { api(projects.lom) implementation("com.modrinth.minotaur:Minotaur:2.8.7") - implementation("io.github.CDAGaming:CurseGradle:1.6.1") + implementation("net.darkhax.curseforgegradle:CurseForgeGradle:1.1.24") } diff --git a/jfmod/src/main/kotlin/jfmod.curseforge.gradle.kts b/jfmod/src/main/kotlin/jfmod.curseforge.gradle.kts index 3acbf81..2a86585 100644 --- a/jfmod/src/main/kotlin/jfmod.curseforge.gradle.kts +++ b/jfmod/src/main/kotlin/jfmod.curseforge.gradle.kts @@ -1,32 +1,32 @@ import io.gitlab.jfronny.scripts.* +import net.darkhax.curseforgegradle.TaskPublishCurseForge plugins { id("jfmod") - id("com.matthewprenger.cursegradle") + id("net.darkhax.curseforgegradle") } val args = extensions.getByName("jfMod") as JfModExtension -curseforge { - if (System.getenv().containsKey("CURSEFORGE_API_TOKEN")) apiKey = System.getenv()["CURSEFORGE_API_TOKEN"] - else println("No CURSEFORGE_API_TOKEN specified") - project { - id = args.curseforge.projectId.get() +val curseforge by tasks.registering(TaskPublishCurseForge::class) { + if (System.getenv().containsKey("CURSEFORGE_API_TOKEN")) { + val tk = System.getenv()["CURSEFORGE_API_TOKEN"] + if ("debug" == tk) debugMode = true + else apiToken = tk + } else println("No CURSEFORGE_API_TOKEN specified") + + disableVersionDetection() + upload(args.curseforge.projectId.get(), tasks.remapJar.get()) { releaseType = versionType.curseforgeName - addGameVersion("Fabric") + addModLoader(args.loaderKind.get().curseforgeName) addGameVersion(lom.minecraftVersion.get()) + addJavaVersion("Java " + lom.javaVersion.get()) changelog = project.changelog - mainArtifact(tasks.remapJar.get()) { - displayName = "[${lom.minecraftVersion.get()}] $versionS" - } - relations { - args.curseforge.requiredDependencies.getOrElse(listOf()).forEach { requiredDependency(it) } - args.curseforge.optionalDependencies.getOrElse(listOf()).forEach { optionalDependency(it) } - } - } - options { - forgeGradleIntegration = false + changelogType = "markdown" + displayName = "[${lom.minecraftVersion.get()}] $versionS" + addRequirement(*args.curseforge.requiredDependencies.getOrElse(listOf()).toTypedArray()) + addOptional(*args.curseforge.optionalDependencies.getOrElse(listOf()).toTypedArray()) } } -tasks.deployRelease.dependsOn(tasks.curseforge) +tasks.deployRelease.dependsOn(curseforge) diff --git a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LoaderKind.kt b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LoaderKind.kt index fb835ec..46acc62 100644 --- a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LoaderKind.kt +++ b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LoaderKind.kt @@ -2,8 +2,10 @@ package io.gitlab.jfronny.scripts import java.util.* -enum class LoaderKind { - NEOFORGE, FORGE, FABRIC; +enum class LoaderKind(val curseforgeName: String) { + NEOFORGE("NeoForge"), + FORGE("Forge"), + FABRIC("Fabric"); companion object { fun fromString(str: String) = valueOf(str.uppercase(Locale.getDefault())) diff --git a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt index f4704df..63c9042 100644 --- a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt +++ b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt @@ -3,6 +3,7 @@ package io.gitlab.jfronny.scripts import org.gradle.api.DefaultTask import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.dsl.DependencyHandler +import org.gradle.api.provider.Provider import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.TaskContainer @@ -25,4 +26,9 @@ fun DependencyHandler.devProject(path: String): ProjectDependency = project(path val LomExtension.isFabric: Boolean get() = loaderKind.get() == LoaderKind.FABRIC val LomExtension.isForge: Boolean get() = loaderKind.get() == LoaderKind.FORGE val LomExtension.isNeoForge: Boolean get() = loaderKind.get() == LoaderKind.NEOFORGE -val LomExtension.isSplitSources: Boolean get() = isFabric // other loaders don't support split sources \ No newline at end of file +val LomExtension.isSplitSources: Boolean get() = isFabric // other loaders don't support split sources + +val LomExtension.javaVersion: Provider get() = minecraftVersion.map { + if (SemanticVersion.parse(it) > SemanticVersion(1, 20, 4, VersionType.RELEASE)) 21 + else 17 +} \ No newline at end of file diff --git a/lom/src/main/kotlin/lom.gradle.kts b/lom/src/main/kotlin/lom.gradle.kts index d36d88b..7bda193 100644 --- a/lom/src/main/kotlin/lom.gradle.kts +++ b/lom/src/main/kotlin/lom.gradle.kts @@ -246,7 +246,7 @@ afterEvaluate { // from fabric-example-mod, enforces modern java tasks.withType().configureEach { options.encoding = "UTF-8" - options.release.set(if (SemanticVersion.parse(args.minecraftVersion.get()) > SemanticVersion(1, 20, 4, VersionType.RELEASE)) 21 else 17) + options.release = args.javaVersion } // otherwise we can't easily overwrite the artifacts to publish while keeping dependency metadata