feat: migrate to CurseForgeGradle
This commit is contained in:
parent
cc2ead1025
commit
c88155651c
@ -5,5 +5,5 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
api(projects.lom)
|
api(projects.lom)
|
||||||
implementation("com.modrinth.minotaur:Minotaur:2.8.7")
|
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 io.gitlab.jfronny.scripts.*
|
||||||
|
import net.darkhax.curseforgegradle.TaskPublishCurseForge
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("jfmod")
|
id("jfmod")
|
||||||
id("com.matthewprenger.cursegradle")
|
id("net.darkhax.curseforgegradle")
|
||||||
}
|
}
|
||||||
|
|
||||||
val args = extensions.getByName("jfMod") as JfModExtension
|
val args = extensions.getByName("jfMod") as JfModExtension
|
||||||
|
|
||||||
curseforge {
|
val curseforge by tasks.registering(TaskPublishCurseForge::class) {
|
||||||
if (System.getenv().containsKey("CURSEFORGE_API_TOKEN")) apiKey = System.getenv()["CURSEFORGE_API_TOKEN"]
|
if (System.getenv().containsKey("CURSEFORGE_API_TOKEN")) {
|
||||||
else println("No CURSEFORGE_API_TOKEN specified")
|
val tk = System.getenv()["CURSEFORGE_API_TOKEN"]
|
||||||
project {
|
if ("debug" == tk) debugMode = true
|
||||||
id = args.curseforge.projectId.get()
|
else apiToken = tk
|
||||||
|
} else println("No CURSEFORGE_API_TOKEN specified")
|
||||||
|
|
||||||
|
disableVersionDetection()
|
||||||
|
upload(args.curseforge.projectId.get(), tasks.remapJar.get()) {
|
||||||
releaseType = versionType.curseforgeName
|
releaseType = versionType.curseforgeName
|
||||||
addGameVersion("Fabric")
|
addModLoader(args.loaderKind.get().curseforgeName)
|
||||||
addGameVersion(lom.minecraftVersion.get())
|
addGameVersion(lom.minecraftVersion.get())
|
||||||
|
addJavaVersion("Java " + lom.javaVersion.get())
|
||||||
changelog = project.changelog
|
changelog = project.changelog
|
||||||
mainArtifact(tasks.remapJar.get()) {
|
changelogType = "markdown"
|
||||||
displayName = "[${lom.minecraftVersion.get()}] $versionS"
|
displayName = "[${lom.minecraftVersion.get()}] $versionS"
|
||||||
}
|
addRequirement(*args.curseforge.requiredDependencies.getOrElse(listOf()).toTypedArray())
|
||||||
relations {
|
addOptional(*args.curseforge.optionalDependencies.getOrElse(listOf()).toTypedArray())
|
||||||
args.curseforge.requiredDependencies.getOrElse(listOf()).forEach { requiredDependency(it) }
|
|
||||||
args.curseforge.optionalDependencies.getOrElse(listOf()).forEach { optionalDependency(it) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
options {
|
|
||||||
forgeGradleIntegration = false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.deployRelease.dependsOn(tasks.curseforge)
|
tasks.deployRelease.dependsOn(curseforge)
|
||||||
|
@ -2,8 +2,10 @@ package io.gitlab.jfronny.scripts
|
|||||||
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
enum class LoaderKind {
|
enum class LoaderKind(val curseforgeName: String) {
|
||||||
NEOFORGE, FORGE, FABRIC;
|
NEOFORGE("NeoForge"),
|
||||||
|
FORGE("Forge"),
|
||||||
|
FABRIC("Fabric");
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun fromString(str: String) = valueOf(str.uppercase(Locale.getDefault()))
|
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.DefaultTask
|
||||||
import org.gradle.api.artifacts.ProjectDependency
|
import org.gradle.api.artifacts.ProjectDependency
|
||||||
import org.gradle.api.artifacts.dsl.DependencyHandler
|
import org.gradle.api.artifacts.dsl.DependencyHandler
|
||||||
|
import org.gradle.api.provider.Provider
|
||||||
import org.gradle.api.tasks.SourceSet
|
import org.gradle.api.tasks.SourceSet
|
||||||
import org.gradle.api.tasks.SourceSetContainer
|
import org.gradle.api.tasks.SourceSetContainer
|
||||||
import org.gradle.api.tasks.TaskContainer
|
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.isFabric: Boolean get() = loaderKind.get() == LoaderKind.FABRIC
|
||||||
val LomExtension.isForge: Boolean get() = loaderKind.get() == LoaderKind.FORGE
|
val LomExtension.isForge: Boolean get() = loaderKind.get() == LoaderKind.FORGE
|
||||||
val LomExtension.isNeoForge: Boolean get() = loaderKind.get() == LoaderKind.NEOFORGE
|
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
|
// from fabric-example-mod, enforces modern java
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
tasks.withType<JavaCompile>().configureEach {
|
||||||
options.encoding = "UTF-8"
|
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
|
// otherwise we can't easily overwrite the artifacts to publish while keeping dependency metadata
|
||||||
|
Loading…
Reference in New Issue
Block a user