113 lines
3.3 KiB
Groovy
113 lines
3.3 KiB
Groovy
plugins {
|
|
// Note: This is only needed for multi-loader projects
|
|
// The main architectury loom version is set at the start of the root build.gradle
|
|
id "architectury-plugin" version "3.4-SNAPSHOT"
|
|
}
|
|
|
|
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_21
|
|
|
|
architectury {
|
|
platformSetupLoomIde()
|
|
forge()
|
|
}
|
|
|
|
//loom {
|
|
// forge {
|
|
// convertAccessWideners.set(true)
|
|
// extraAccessWideners.add("lod.accesswidener")
|
|
// mixinConfigs("DistantHorizons.mixins.json")
|
|
// }
|
|
//}
|
|
|
|
loom {
|
|
silentMojangMappingsLicense() // Shut the licencing warning
|
|
accessWidenerPath = project(":common").file("src/main/resources/${accessWidenerVersion}.distanthorizons.accesswidener")
|
|
|
|
forge {
|
|
convertAccessWideners = true
|
|
extraAccessWideners.add loom.accessWidenerPath.get().asFile.name
|
|
|
|
mixinConfigs = [
|
|
"DistantHorizons.forge.mixins.json"
|
|
]
|
|
}
|
|
|
|
// "runs" isn't required, but when we do need it then it can be useful
|
|
runs {
|
|
client {
|
|
client()
|
|
setConfigName("Forge Client")
|
|
ideConfigGenerated(true)
|
|
runDir("../run")
|
|
// vmArgs("-XX:-OmitStackTraceInFastThrow", minecraftMemoryJavaArg)
|
|
}
|
|
server {
|
|
server()
|
|
setConfigName("Forge Server")
|
|
ideConfigGenerated(true)
|
|
runDir("../run")
|
|
}
|
|
}
|
|
}
|
|
|
|
remapJar {
|
|
inputFile = apiDowngrade.archiveFile
|
|
dependsOn apiDowngrade
|
|
}
|
|
|
|
def addMod(path, enabled) {
|
|
if (enabled == "2")
|
|
dependencies { implementation(path) }
|
|
else if (enabled == "1")
|
|
dependencies { modCompileOnly(path) }
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
|
|
mappings loom.layered() {
|
|
// Mojmap mappings
|
|
officialMojangMappings()
|
|
// Parchment mappings (it adds parameter mappings & javadoc)
|
|
parchment("org.parchmentmc.data:parchment-${rootProject.parchment_version}@zip")
|
|
}
|
|
|
|
// Forge
|
|
forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}"
|
|
|
|
addMod("curse.maven:TerraForged-363820:${rootProject.terraforged_version}", rootProject.enable_terraforged)
|
|
|
|
addMod("curse.maven:TerraFirmaCraft-302973:4616004", rootProject.enable_terrafirmacraft)
|
|
|
|
|
|
if ( // Only run on MC 1.20.6 or later
|
|
// FIXME: Add an environment variable for the Major, Minor, and Patch version number of Minecraft
|
|
minecraft_version.split("\\.")[1].toInteger() >= 20 &&
|
|
(
|
|
minecraft_version.split("\\.").length > 1 && // Incase there isn't a minor version
|
|
minecraft_version.split("\\.")[2].toInteger() >= 6
|
|
)
|
|
) {
|
|
// (potential) hack fix, force jopt-simple to be exactly 5.0.4 because Mojang ships that version, but some transitive dependencies request 6.0+
|
|
implementation('net.sf.jopt-simple:jopt-simple:5.0.4') //{ version { strictly '5.0.4' } }
|
|
}
|
|
}
|
|
|
|
task deleteResources(type: Delete) {
|
|
delete file("build/resources/main")
|
|
}
|
|
|
|
tasks.register('copyAllResources') {
|
|
dependsOn(copyCoreResources)
|
|
dependsOn(copyCommonLoaderResources)
|
|
}
|
|
|
|
processResources {
|
|
dependsOn(tasks.named('copyAllResources'))
|
|
}
|
|
|
|
tasks.named('runClient') {
|
|
dependsOn(tasks.named('copyAllResources'))
|
|
finalizedBy(deleteResources)
|
|
}
|
|
|