mirror of
https://github.com/TeamMidnightDust/CullLeaves.git
synced 2025-12-15 14:15:08 +01:00
228 lines
6.2 KiB
Plaintext
228 lines
6.2 KiB
Plaintext
plugins {
|
|
id("dev.architectury.loom")
|
|
id("architectury-plugin")
|
|
id("me.modmuss50.mod-publish-plugin")
|
|
id("com.github.johnrengelman.shadow")
|
|
`maven-publish`
|
|
}
|
|
|
|
val minecraft = stonecutter.current.version
|
|
val loader = loom.platform.get().name.lowercase()
|
|
|
|
version = "${mod.version}+$minecraft"
|
|
group = mod.group
|
|
base {
|
|
archivesName.set("${mod.id}-$loader")
|
|
}
|
|
|
|
repositories {
|
|
maven("https://maven.neoforged.net/releases/")
|
|
maven("https://api.modrinth.com/maven")
|
|
|
|
// modmenu
|
|
maven("https://maven.terraformersmc.com/")
|
|
maven("https://maven.nucleoid.xyz/")
|
|
|
|
// MidnightLib
|
|
maven("https://maven.midnightdust.eu/snapshots/")
|
|
}
|
|
dependencies {
|
|
minecraft("com.mojang:minecraft:$minecraft")
|
|
|
|
// MidnightLib
|
|
modImplementation ("eu.midnightdust:midnightlib:${mod.dep("midnightlib_version")}+${minecraft}-${loader}")
|
|
|
|
if (loader == "fabric") {
|
|
modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}")
|
|
modImplementation("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}")
|
|
|
|
modCompileOnly("maven.modrinth:sodium:${mod.dep("sodium_version")}-fabric")
|
|
}
|
|
if (loader == "forge") {
|
|
"forge"("net.minecraftforge:forge:${minecraft}-${mod.dep("forge_loader")}")
|
|
}
|
|
if (loader == "neoforge") {
|
|
"neoForge"("net.neoforged:neoforge:${mod.dep("neoforge_loader")}")
|
|
modCompileOnly("maven.modrinth:sodium:${mod.dep("sodium_version")}-neoforge")
|
|
}
|
|
mappings (loom.officialMojangMappings())
|
|
}
|
|
|
|
loom {
|
|
//accessWidenerPath = rootProject.file("src/main/resources/template.accesswidener")
|
|
|
|
decompilers {
|
|
get("vineflower").apply { // Adds names to lambdas - useful for mixins
|
|
options.put("mark-corresponding-synthetics", "1")
|
|
}
|
|
}
|
|
if (loader == "forge") {
|
|
forge.mixinConfigs("midnightlib.mixins.json")
|
|
}
|
|
}
|
|
|
|
publishMods {
|
|
val modrinthToken = System.getenv("MODRINTH_TOKEN")
|
|
val curseforgeToken = System.getenv("CURSEFORGE_TOKEN")
|
|
val githubToken = System.getenv("GITHUB_TOKEN").orEmpty()
|
|
|
|
file = project.tasks.remapJar.get().archiveFile
|
|
dryRun = modrinthToken == null || curseforgeToken == null
|
|
|
|
displayName = "${mod.name} ${loader.replaceFirstChar { it.uppercase() }} ${property("mod.mc_title")}-${mod.version}"
|
|
version = mod.version
|
|
changelog = rootProject.file("CHANGELOG.md").readText()
|
|
type = BETA
|
|
|
|
modLoaders.add(loader)
|
|
|
|
val targets = property("mod.mc_targets").toString().split(' ')
|
|
modrinth {
|
|
projectId = property("publish.modrinth").toString()
|
|
accessToken = modrinthToken
|
|
targets.forEach(minecraftVersions::add)
|
|
if (loader == "fabric") {
|
|
requires("fabric-api")
|
|
optional("modmenu")
|
|
}
|
|
}
|
|
|
|
curseforge {
|
|
projectId = property("publish.curseforge").toString()
|
|
accessToken = curseforgeToken.toString()
|
|
targets.forEach(minecraftVersions::add)
|
|
if (loader == "fabric") {
|
|
requires("fabric-api")
|
|
optional("modmenu")
|
|
}
|
|
}
|
|
|
|
github {
|
|
accessToken = githubToken
|
|
repository = "TeamMidnightDust/CullLeaves"
|
|
commitish = "multiversion" // This is the branch the release tag will be created from
|
|
|
|
tagName = "v" + properties["mod.version"]
|
|
|
|
// Allow the release to be initially created without any files.
|
|
allowEmptyFiles = true
|
|
}
|
|
}
|
|
//publishing {
|
|
// publications {
|
|
// create<MavenPublication>("mavenJava") {
|
|
// pom {
|
|
// groupId = "eu.midnightdust"
|
|
// artifactId = "midnightlib"
|
|
// version = project.version
|
|
//
|
|
// from(components["java"])
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
publishing {
|
|
repositories {
|
|
maven {
|
|
name = "MidnightDust"
|
|
url = uri("https://maven.midnightdust.eu/snapshots")
|
|
credentials(PasswordCredentials::class)
|
|
}
|
|
}
|
|
publications {
|
|
create<MavenPublication>("mavenJava") {
|
|
pom {
|
|
groupId = "eu.midnightdust"
|
|
artifactId = project.mod.id
|
|
version = "${project.version}-${loader}"
|
|
|
|
from(components["java"])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
java {
|
|
withSourcesJar()
|
|
val java = if (stonecutter.eval(minecraft, ">=1.20.5")) JavaVersion.VERSION_21 else JavaVersion.VERSION_17
|
|
targetCompatibility = java
|
|
sourceCompatibility = java
|
|
}
|
|
|
|
val shadowBundle: Configuration by configurations.creating {
|
|
isCanBeConsumed = false
|
|
isCanBeResolved = true
|
|
}
|
|
|
|
tasks.shadowJar {
|
|
configurations = listOf(shadowBundle)
|
|
archiveClassifier = "dev-shadow"
|
|
}
|
|
|
|
tasks.remapJar {
|
|
injectAccessWidener = true
|
|
input = tasks.shadowJar.get().archiveFile
|
|
archiveClassifier = null
|
|
dependsOn(tasks.shadowJar)
|
|
}
|
|
|
|
tasks.jar {
|
|
archiveClassifier = "dev"
|
|
}
|
|
|
|
val buildAndCollect = tasks.register<Copy>("buildAndCollect") {
|
|
group = "build"
|
|
from(tasks.remapJar.get().archiveFile, tasks.remapSourcesJar.get().archiveFile)
|
|
into(rootProject.layout.buildDirectory.file("libs/${mod.version}/$loader"))
|
|
dependsOn("build")
|
|
}
|
|
|
|
if (stonecutter.current.isActive) {
|
|
rootProject.tasks.register("buildActive") {
|
|
group = "project"
|
|
dependsOn(buildAndCollect)
|
|
}
|
|
|
|
rootProject.tasks.register("runActive") {
|
|
group = "project"
|
|
dependsOn(tasks.named("runClient"))
|
|
}
|
|
}
|
|
|
|
tasks.processResources {
|
|
properties(
|
|
listOf("fabric.mod.json"),
|
|
"id" to mod.id,
|
|
"name" to mod.name,
|
|
"version" to mod.version,
|
|
"minecraft" to mod.prop("mc_dep_fabric")
|
|
)
|
|
properties(
|
|
listOf("META-INF/mods.toml", "pack.mcmeta"),
|
|
"id" to mod.id,
|
|
"name" to mod.name,
|
|
"version" to mod.version,
|
|
"minecraft" to mod.prop("mc_dep_forgelike")
|
|
)
|
|
properties(
|
|
listOf("META-INF/neoforge.mods.toml", "pack.mcmeta"),
|
|
"id" to mod.id,
|
|
"name" to mod.name,
|
|
"version" to mod.version,
|
|
"minecraft" to mod.prop("mc_dep_forgelike")
|
|
)
|
|
}
|
|
|
|
tasks.build {
|
|
group = "versioned"
|
|
description = "Must run through 'chiseledBuild'"
|
|
}
|
|
|
|
|
|
stonecutter {
|
|
constants {
|
|
arrayOf("fabric", "neoforge", "forge").forEach { it -> put(it, loader == it) }
|
|
}
|
|
}
|