feat: migrate to CurseForgeGradle
This commit is contained in:
parent
cc2ead1025
commit
c88155651c
@ -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")
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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()))
|
||||
|
@ -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
|
||||
val LomExtension.isSplitSources: Boolean get() = isFabric // other loaders don't support split sources
|
||||
|
||||
val LomExtension.javaVersion: Provider<Int> get() = minecraftVersion.map {
|
||||
if (SemanticVersion.parse(it) > SemanticVersion(1, 20, 4, VersionType.RELEASE)) 21
|
||||
else 17
|
||||
}
|
@ -246,7 +246,7 @@ afterEvaluate {
|
||||
// from fabric-example-mod, enforces modern java
|
||||
tasks.withType<JavaCompile>().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
|
||||
|
Loading…
Reference in New Issue
Block a user