From dd10933ab0a973db5730caeae875d3aa3577abd6 Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 12 Jan 2021 13:22:13 -0800 Subject: [PATCH] Update Coremods, ASM, and include standalone Nashorn to load on J15. --- build.gradle | 95 ++++++++++--------- .../minecraftforge/forge/tasks/Util.groovy | 5 +- 2 files changed, 53 insertions(+), 47 deletions(-) diff --git a/build.gradle b/build.gradle index bec7d283f5..e9ea12dacd 100644 --- a/build.gradle +++ b/build.gradle @@ -11,8 +11,8 @@ buildscript { } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:3.0.187' - classpath 'org.ow2.asm:asm:7.2' - classpath 'org.ow2.asm:asm-tree:7.2' + classpath 'org.ow2.asm:asm:9.0' + classpath 'org.ow2.asm:asm-tree:9.0' } } @@ -432,17 +432,18 @@ project(':forge') { fmllauncherImplementation.extendsFrom(installer) } dependencies { - installer 'org.ow2.asm:asm:7.2' - installer 'org.ow2.asm:asm-commons:7.2' - installer 'org.ow2.asm:asm-tree:7.2' - installer 'org.ow2.asm:asm-util:7.2' - installer 'org.ow2.asm:asm-analysis:7.2' - installer 'cpw.mods:modlauncher:8.0.6' + installer 'org.ow2.asm:asm:9.0' + installer 'org.ow2.asm:asm-commons:9.0' + installer 'org.ow2.asm:asm-tree:9.0' + installer 'org.ow2.asm:asm-util:9.0' + installer 'org.ow2.asm:asm-analysis:9.0' + installer 'cpw.mods:modlauncher:8.0.+' installer 'cpw.mods:grossjava9hacks:1.3.+' - installer 'net.minecraftforge:accesstransformers:2.2.+:shadowed' - installer 'net.minecraftforge:eventbus:3.0.+:service' + installer 'net.minecraftforge:accesstransformers:3.0.+' + installer 'org.antlr:antlr4-runtime:4.9.1' //Dep of AccessTransformer + installer 'net.minecraftforge:eventbus:4.0.+' installer 'net.minecraftforge:forgespi:3.2.+' - installer 'net.minecraftforge:coremods:3.0.+' + installer 'net.minecraftforge:coremods:4.0.+' installer 'net.minecraftforge:unsafe:0.2.+' installer 'com.electronwill.night-config:core:3.6.2' installer 'com.electronwill.night-config:toml:3.6.2' @@ -454,6 +455,9 @@ project(':forge') { installer 'net.minecrell:terminalconsoleappender:1.2.+' installer 'net.sf.jopt-simple:jopt-simple:5.0.4' installer 'org.spongepowered:mixin:0.8.2' + // This is org.openjdk.nashorn:nashorn-core:15.1.1 repackaged so it doesn't crash on JREs < 15. + // See: https://github.com/LexManos/NashornLegacyPackager + installer 'net.minecraftforge:nashorn-core-compat:15.1.1' fmllauncherImplementation 'com.google.guava:guava:21.0' fmllauncherImplementation 'com.google.code.gson:gson:2.8.0' fmllauncherImplementation 'org.lwjgl:lwjgl:3.2.2' @@ -475,35 +479,35 @@ project(':forge') { if (changelog.exists()) extraTxts += changelog - task crowdin(type: CrowdinTask) { - key = project.hasProperty('crowdinKey') ? project.crowdinKey : null - //TODO: Merge our english.json? - } + task crowdin(type: CrowdinTask) { + key = project.hasProperty('crowdinKey') ? project.crowdinKey : null + //TODO: Merge our english.json? + } // We apply the bin patches we just created to make a jar that is JUST our changes - ['Client', 'Server', 'Joined'].each { side -> - def gen = tasks.getByName("gen${side}BinPatches") - gen.tool = BINPATCH_TOOL - task "apply${side}BinPatches"(type: ApplyBinPatches, dependsOn: gen) { - clean = { gen.cleanJar } - input = gen.output - tool = BINPATCH_TOOL - } - if (side != 'Joined') { - // Create SRG named Vanilla jars, using the SpecialSource we have in the installer - task "create${side}SRG"(type: RenameJar, dependsOn: gen) { - tool = SPECIAL_SOURCE + ':shaded' - args = ['--stable', '--in-jar', '{input}', '--out-jar', '{output}', '--srg-in', '{mappings}'] - mappings = { gen.srg } - input = { gen.cleanJar } - output = file("build/create${name}SRG/output.jar") - } - } - } + ['Client', 'Server', 'Joined'].each { side -> + def gen = tasks.getByName("gen${side}BinPatches") + gen.tool = BINPATCH_TOOL + task "apply${side}BinPatches"(type: ApplyBinPatches, dependsOn: gen) { + clean = { gen.cleanJar } + input = gen.output + tool = BINPATCH_TOOL + } + if (side != 'Joined') { + // Create SRG named Vanilla jars, using the SpecialSource we have in the installer + task "create${side}SRG"(type: RenameJar, dependsOn: gen) { + tool = SPECIAL_SOURCE + ':shaded' + args = ['--stable', '--in-jar', '{input}', '--out-jar', '{output}', '--srg-in', '{mappings}'] + mappings = { gen.srg } + input = { gen.cleanJar } + output = file("build/create${name}SRG/output.jar") + } + } + } task downloadLibraries(type: DownloadLibrariesTask, dependsOn: ':mcp:setupMCP') { - input = VERSION_JSON - output = rootProject.file('build/libraries/') + input = VERSION_JSON + output = rootProject.file('build/libraries/') } task extractInheritance(type: ExtractInheritance, dependsOn: [genJoinedBinPatches, downloadLibraries]) { @@ -511,23 +515,23 @@ project(':forge') { input { genJoinedBinPatches.cleanJar } doFirst { downloadLibraries.libraries.each{ addLibrary(it) } } } - + task checkATs(type: CheckATs, dependsOn: extractInheritance) { inheritance = extractInheritance.output - ats = patcher.accessTransformers + ats = patcher.accessTransformers } - + task checkSAS(type: CheckSAS, dependsOn: extractInheritance) { inheritance = extractInheritance.output - sass = patcher.sideAnnotationStrippers + sass = patcher.sideAnnotationStrippers } - + task checkExcs(type: CheckExcs, dependsOn: jar) { binary = jar.archivePath - excs = patcher.excs + excs = patcher.excs } - - task checkAll(dependsOn: [checkATs, checkSAS, checkExcs]){} + + task checkAll(dependsOn: [checkATs, checkSAS, checkExcs]){} task checkPatchesAndFix(type: CheckPatches) { patchDir = file("$rootDir/patches") @@ -638,6 +642,7 @@ project(':forge') { logo: '/big_logo.png', minecraft: MC_VERSION, welcome: "Welcome to the simple ${project.name.capitalize()} installer.", + mirrorList: "https://files.minecraftforge.net/mirrors-2.0.json", data: [ MAPPINGS: [ client: "[${MCP_ARTIFACT.group}:${MCP_ARTIFACT.name}:${MCP_ARTIFACT.version}:mappings@txt]", @@ -758,7 +763,7 @@ project(':forge') { // add crowdin locales from { crowdin.output.exists() ? zipTree(crowdin.output) : null} dependsOn crowdin - duplicatesStrategy = 'exclude' + duplicatesStrategy = 'exclude' doFirst { MANIFESTS.each{ pkg, values -> diff --git a/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/Util.groovy b/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/Util.groovy index cefba9fff1..3eec95f08e 100644 --- a/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/Util.groovy +++ b/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/Util.groovy @@ -59,11 +59,12 @@ public class Util { url = "https://files.minecraftforge.net/maven/${path}" } //TODO remove when Mojang launcher is updated - if (!classifiers && art.classifier != null) { //Mojang launcher doesn't currently support classifiers, so... move it to part of the version, and force the extension to 'jar' + if (!classifiers && art.classifier != null) { + //Mojang launcher doesn't currently support classifiers, so... move it to part of the version, and force the extension to 'jar' + // However, keep the path normal so that our mirror system works. art.version = "${art.version}-${art.classifier}" art.classifier = null art.extension = 'jar' - path = "${art.group.replace('.', '/')}/${art.name}/${art.version}/${art.name}-${art.version}.jar" } ret[key] = [ name: "${art.group}:${art.name}:${art.version}" + (art.classifier == null ? '' : ":${art.classifier}") + (art.extension == 'jar' ? '' : "@${art.extension}"),