Files
Jurassic-Revived/minecraftforge/legacy.gradle.kts
T
2026-04-24 17:52:43 -04:00

137 lines
3.9 KiB
Kotlin
Executable File

import org.slf4j.event.Level
import org.gradle.jvm.toolchain.JavaLanguageVersion
val isForge1201 = stonecutter.current.version == "1.20.1"
val targetJava = if (isForge1201) 17 else 21
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(targetJava))
}
}
tasks.withType<JavaCompile>().configureEach {
options.release.set(targetJava)
}
plugins {
`multiloader-loader`
id("net.neoforged.moddev.legacyforge")
}
legacyForge {
version = "${commonMod.minecraft_version}-${commonMod.prop("minecraftforge_version")}"
}
repositories {
mavenCentral()
maven("https://api.modrinth.com/maven") { name = "Modrinth" }
maven("https://maven.architectury.dev/")
maven("https://maven.terraformersmc.com/releases/")
maven("https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/")
maven("https://maven.blamejared.com/")
maven("https://maven.shedaniel.me/")
}
dependencies {
// Architectury transformer runtime (declare it directly)
modRuntimeOnly("dev.architectury:architectury-transformer:5.2.88:runtime")
// Architectury (Forge)
modImplementation("dev.architectury:architectury-forge:${commonMod.prop("architectury_version")}")
modImplementation("me.shedaniel.cloth:cloth-config-forge:${commonMod.prop("cloth_config_version_1_20_1")}")
// GeckoLib: if you get SRG/mapping issues at runtime, this should also be a mod dependency
modImplementation("software.bernie.geckolib:geckolib-forge-${commonMod.minecraft_version}:${commonMod.prop("geckolib_version")}")
modCompileOnly("mezz.jei:jei-${commonMod.minecraft_version}-common-api:${commonMod.prop("jei_version")}")
modCompileOnly("mezz.jei:jei-${commonMod.minecraft_version}-forge-api:${commonMod.prop("jei_version")}")
modRuntimeOnly("mezz.jei:jei-${commonMod.minecraft_version}-forge:${commonMod.prop("jei_version")}")
// Jade
val jadeVersion = if (isForge1201) commonMod.prop("jade_version_1_20_1") else commonMod.prop("jade_version_1_21_1")
val jadeDep = "maven.modrinth:jade:$jadeVersion+forge"
modImplementation(jadeDep)
modCompileOnly(jadeDep)
}
legacyForge {
val at = project.file("build/resources/main/META-INF/accesstransformer.cfg");
accessTransformers.from(at.absolutePath)
validateAccessTransformers = true
val commonResources = project(":common").file("src/main/resources").absolutePath
val localResources = project.file("src/main/resources").absolutePath
val generatedResources = project.file("src/generated/resources").absolutePath
runs {
register("client") {
client()
ideName = "MinecraftForge Client (${project.path})"
logLevel = Level.TRACE
}
register("gameTestServer") {
type = "gameTestServer"
ideName = "MinecraftForge GameTestServer (${project.path})"
logLevel = Level.TRACE
}
register("data") {
data()
ideName = "MinecraftForge Data (${project.path})"
logLevel = Level.TRACE
programArguments.addAll(
"--mod", commonMod.id,
"--all",
"--output", generatedResources,
"--existing", localResources,
"--existing", commonResources
)
}
register("server") {
server()
ideName = "MinecraftForge Server (${project.path})"
logLevel = Level.TRACE
}
}
parchment {
commonMod.propOrNull("parchment_mappings")?.let {
mappingsVersion = it
minecraftVersion = if (it != "") commonMod.minecraft_version else ""
}
}
mods {
register(commonMod.id) {
sourceSet(sourceSets.main.get())
}
}
}
sourceSets.main {
resources.srcDir("src/generated/resources")
}
tasks {
processResources {
exclude("${mod.id}.accesswidener")
val atFile =
project(":common").file("src/main/resources/accesstransformers/accesstransformer-${commonMod.minecraft_version}.cfg")
from(atFile.parentFile) {
include(atFile.name)
rename(atFile.name, "META-INF/accesstransformer.cfg")
into("")
}
}
}
tasks.named("createMinecraftArtifacts") {
dependsOn(":minecraftforge:${commonMod.propOrNull("minecraft_version")}:processResources")
}