Files
mc/mods/nosingleplayer/build.gradle
T

67 lines
2.5 KiB
Groovy

// SurviePote - nosingleplayer : build SANS loom.
// MC 26.3 n'est plus obfusqué (noms Mojang lisibles dans le jar vanilla) et Mojang ne
// publie plus de mappings (pas de client_mappings/server_mappings, pas de Yarn 26.x).
// On compile directement contre le jar client Mojang + loader/mixin en compileOnly.
plugins {
id 'java'
}
version = project.mod_version
group = project.maven_group
base {
archivesName = project.archives_base_name
}
def mcDir = layout.buildDirectory.dir('mc')
tasks.register('downloadMcLibs') {
def manifestUrl = 'https://piston-meta.mojang.com/mc/game/version_manifest_v2.json'
def mcVersion = project.minecraft_version
def loaderVersion = project.loader_version
outputs.dir(mcDir)
doLast {
def outDir = mcDir.get().asFile
outDir.mkdirs()
def dl = { String url, File dest ->
if (!dest.exists()) {
println "Téléchargement ${dest.name} ..."
new URL(url).withInputStream { i -> dest.withOutputStream { it << i } }
}
}
def manifest = new groovy.json.JsonSlurper().parse(new URL(manifestUrl))
def entry = manifest.versions.find { it.id == mcVersion }
if (entry == null) throw new GradleException("Version MC introuvable : ${mcVersion}")
def versionJson = new groovy.json.JsonSlurper().parse(new URL(entry.url))
dl(versionJson.downloads.client.url, new File(outDir, 'client.jar'))
dl("https://maven.fabricmc.net/net/fabricmc/fabric-loader/${loaderVersion}/fabric-loader-${loaderVersion}.jar",
new File(outDir, 'fabric-loader.jar'))
dl('https://maven.fabricmc.net/net/fabricmc/sponge-mixin/0.17.5+mixin.0.8.7/sponge-mixin-0.17.5+mixin.0.8.7.jar',
new File(outDir, 'sponge-mixin.jar'))
dl('https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar',
new File(outDir, 'slf4j-api.jar'))
dl('https://libraries.minecraft.net/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar',
new File(outDir, 'brigadier.jar'))
}
}
dependencies {
compileOnly files({ tasks.named('downloadMcLibs').map { mcDir.get().asFile.listFiles().findAll { it.name.endsWith('.jar') } } })
}
tasks.withType(JavaCompile).configureEach {
it.options.release = 25
it.dependsOn('downloadMcLibs')
}
processResources {
inputs.property 'version', project.version
filesMatching('fabric.mod.json') {
expand 'version': project.version
}
}
java {
withSourcesJar()
}