Installer work, universal obfed to srg names, and binpatches against SRG named clients.
This commit is contained in:
parent
015ac2547e
commit
b8d305b869
154
build.gradle
154
build.gradle
|
@ -15,6 +15,7 @@ import java.text.SimpleDateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
|
import net.minecraftforge.gradle.common.task.DownloadMavenArtifact
|
||||||
import net.minecraftforge.gradle.common.task.SignJar
|
import net.minecraftforge.gradle.common.task.SignJar
|
||||||
import org.apache.tools.ant.filters.ReplaceTokens
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
import de.undercouch.gradle.tasks.download.Download
|
import de.undercouch.gradle.tasks.download.Download
|
||||||
|
@ -32,7 +33,7 @@ version = '1.0.0'
|
||||||
project(':mcp') {
|
project(':mcp') {
|
||||||
apply plugin: 'net.minecraftforge.gradle.forgedev.mcp'
|
apply plugin: 'net.minecraftforge.gradle.forgedev.mcp'
|
||||||
mcp {
|
mcp {
|
||||||
config = 'de.oceanlabs.mcp:mcp_config:1.13-2018.09.12.04.11.00@zip'
|
config = '1.13-2018.09.12.04.11.00'
|
||||||
pipeline = 'joined'
|
pipeline = 'joined'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,6 +87,10 @@ project(':forge') {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
ext {
|
||||||
|
MCP_ARTIFACT = project(':mcp').mcp.config
|
||||||
|
MCP_VERSION = project(':mcp').mcp.config.version.split('-')[1] // The timestamp only.
|
||||||
|
}
|
||||||
patcher {
|
patcher {
|
||||||
parent = project(':clean')
|
parent = project(':clean')
|
||||||
patches = file("$rootDir/patches/minecraft")
|
patches = file("$rootDir/patches/minecraft")
|
||||||
|
@ -93,6 +98,7 @@ project(':forge') {
|
||||||
accessTransformer = file("$rootDir/src/main/resources/forge_at.cfg")
|
accessTransformer = file("$rootDir/src/main/resources/forge_at.cfg")
|
||||||
exc = file("$rootDir/src/main/resources/forge.exc")
|
exc = file("$rootDir/src/main/resources/forge.exc")
|
||||||
srgPatches = true
|
srgPatches = true
|
||||||
|
srgUniversal = true
|
||||||
clientRun {
|
clientRun {
|
||||||
main = 'net.minecraftforge.fml.LaunchTesting'
|
main = 'net.minecraftforge.fml.LaunchTesting'
|
||||||
environment = [
|
environment = [
|
||||||
|
@ -303,29 +309,32 @@ project(':forge') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task installerJson() {
|
task installerJson(dependsOn: [launcherJson, genClientBinPatches]) {
|
||||||
ext {
|
ext {
|
||||||
output = file('build/libs/install_profile.json')
|
output = file('build/libs/install_profile.json')
|
||||||
|
INSTALLER_TOOLS = 'net.minecraftforge:installertools:1.0.3'
|
||||||
|
}
|
||||||
|
doFirst {
|
||||||
|
ext.BIN_PATCHER = 'net.minecraftforge:binarypatcher:' + genClientBinPatches.resolvedVersion
|
||||||
}
|
}
|
||||||
dependsOn launcherJson
|
|
||||||
inputs.file launcherJson.output
|
inputs.file launcherJson.output
|
||||||
outputs.file output
|
outputs.file output
|
||||||
doLast {
|
doLast {
|
||||||
def idx = project.version.indexOf('-')
|
def idx = project.version.indexOf('-')
|
||||||
|
def libs = [:]
|
||||||
def json = [
|
def json = [
|
||||||
_comment_: launcherJson.comment,
|
_comment_: launcherJson.comment,
|
||||||
profile: project.name,
|
profile: project.name,
|
||||||
version: project.version.substring(0, idx) + "-${project.name}" + project.version.substring(idx),
|
version: project.version.substring(0, idx) + "-${project.name}" + project.version.substring(idx),
|
||||||
json: '/version.json',
|
json: '/version.json',
|
||||||
path: "${project.group}:${project.name}:${project.version}",
|
path: "${project.group}:${project.name}:${project.version}:universal",
|
||||||
logo: '/big_logo.png',
|
logo: '/big_logo.png',
|
||||||
minecraft: patcher.mcVersion,
|
minecraft: patcher.mcVersion,
|
||||||
welcome: "Welcome to the simple ${project.name.capitalize()} installer.",
|
welcome: "Welcome to the simple ${project.name.capitalize()} installer.",
|
||||||
processors: [],
|
|
||||||
data: [
|
data: [
|
||||||
MAPPINGS: [
|
MAPPINGS: [
|
||||||
client: '/data/joined.tsrg',
|
client: "[${MCP_ARTIFACT.group}:${MCP_ARTIFACT.name}:${MCP_ARTIFACT.version}:mappings@txt]",
|
||||||
server: '/data/joined.tsrg'
|
server: "[${MCP_ARTIFACT.group}:${MCP_ARTIFACT.name}:${MCP_ARTIFACT.version}:mappings@txt]"
|
||||||
],
|
],
|
||||||
BINPATCH: [
|
BINPATCH: [
|
||||||
client: '/data/client.lzma',
|
client: '/data/client.lzma',
|
||||||
|
@ -343,48 +352,63 @@ project(':forge') {
|
||||||
client: "[net.minecraft:client:${patcher.mcVersion}:extra]",
|
client: "[net.minecraft:client:${patcher.mcVersion}:extra]",
|
||||||
server: "[net.minecraft:server:${patcher.mcVersion}:extra]"
|
server: "[net.minecraft:server:${patcher.mcVersion}:extra]"
|
||||||
],
|
],
|
||||||
PATCHED: [
|
MC_SRG: [
|
||||||
client: "[${project.group}:${project.name}:${project.version}:client-patched]",
|
client: "[net.minecraft:client:${patcher.mcVersion}-${MCP_VERSION}:srg]",
|
||||||
server: "[${project.group}:${project.name}:${project.version}:server-patched]"
|
server: "[net.minecraft:server:${patcher.mcVersion}-${MCP_VERSION}:srg]"
|
||||||
],
|
],
|
||||||
REMAPPED: [
|
PATCHED: [
|
||||||
client: "[${project.group}:${project.name}:${project.version}:client-srg]",
|
client: "[${project.group}:${project.name}:${project.version}:client]",
|
||||||
server: "[${project.group}:${project.name}:${project.version}:server-srg]"
|
server: "[${project.group}:${project.name}:${project.version}:server]"
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
processors: [
|
||||||
|
[
|
||||||
|
jar: INSTALLER_TOOLS,
|
||||||
|
classpath: getClasspath(project, libs, INSTALLER_TOOLS),
|
||||||
|
args: [
|
||||||
|
'--task', 'MCP_DATA',
|
||||||
|
'--input', "[${MCP_ARTIFACT.descriptor}]",
|
||||||
|
'--output', '{MAPPINGS}',
|
||||||
|
'--key', 'mappings'
|
||||||
]
|
]
|
||||||
]
|
], [
|
||||||
def libs = [:]
|
|
||||||
json.processors.add([
|
|
||||||
jar: 'net.minecraftforge:jarsplitter:1.0.3',
|
jar: 'net.minecraftforge:jarsplitter:1.0.3',
|
||||||
classpath: getClasspath(project, libs, 'net.minecraftforge:jarsplitter:1.0.3'),
|
classpath: getClasspath(project, libs, 'net.minecraftforge:jarsplitter:1.0.3'),
|
||||||
args: [
|
args: [
|
||||||
'--input', '{MINECRAFT_JAR}',
|
'--input', '{MINECRAFT_JAR}',
|
||||||
'--slim', "{MC_SLIM}",
|
'--slim', '{MC_SLIM}',
|
||||||
'--data', "{MC_DATA}",
|
'--data', '{MC_DATA}',
|
||||||
'--extra', "{MC_EXTRA}",
|
'--extra', '{MC_EXTRA}',
|
||||||
'--srg', '{MAPPINGS}'
|
'--srg', '{MAPPINGS}'
|
||||||
]
|
]
|
||||||
])
|
], [ // SpecialSource has a bug where it won't create the nessasary directories, remove when they fix that.
|
||||||
json.processors.add([
|
jar: INSTALLER_TOOLS,
|
||||||
jar: 'net.minecraftforge:binarypatcher:1.0.3',
|
classpath: getClasspath(project, libs, INSTALLER_TOOLS),
|
||||||
classpath: getClasspath(project, libs, 'net.minecraftforge:binarypatcher:1.0.3'),
|
|
||||||
args: [
|
args: [
|
||||||
'--clean', '{MC_SLIM}',
|
'--task', 'CREATE_PARENTS',
|
||||||
'--output', '{PATCHED}',
|
'--target', '{MC_SRG}'
|
||||||
'--apply', '{BINPATCH}'
|
|
||||||
]
|
]
|
||||||
])
|
], [
|
||||||
json.processors.add([
|
|
||||||
jar: 'net.md-5:SpecialSource:1.8.3',
|
jar: 'net.md-5:SpecialSource:1.8.3',
|
||||||
classpath: getClasspath(project, libs, 'net.md-5:SpecialSource:1.8.3'),
|
classpath: getClasspath(project, libs, 'net.md-5:SpecialSource:1.8.3'),
|
||||||
args: [
|
args: [
|
||||||
'--in-jar', '{PATCHED}',
|
'--in-jar', '{MC_SLIM}',
|
||||||
'--out-jar', '{REMAPPED}',
|
'--out-jar', '{MC_SRG}',
|
||||||
'--srg-in', '{MAPPINGS}'
|
'--srg-in', '{MAPPINGS}'
|
||||||
]
|
]
|
||||||
])
|
], [
|
||||||
|
jar: BIN_PATCHER,
|
||||||
json.libraries = libs.values()
|
classpath: getClasspath(project, libs, BIN_PATCHER),
|
||||||
|
args: [
|
||||||
|
'--clean', '{MC_SRG}',
|
||||||
|
'--output', '{PATCHED}',
|
||||||
|
'--apply', '{BINPATCH}'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
getClasspath(project, libs, MCP_ARTIFACT.descriptor) //Tell it to download mcp_config
|
||||||
|
json.libraries = libs.values().sort{a,b -> a.name.compareTo(b.name)}
|
||||||
|
|
||||||
output.text = new JsonBuilder(json).toPrettyString()
|
output.text = new JsonBuilder(json).toPrettyString()
|
||||||
}
|
}
|
||||||
|
@ -444,11 +468,10 @@ project(':forge') {
|
||||||
|
|
||||||
task signUniversal(type: SignJar, dependsOn: universalJar) {
|
task signUniversal(type: SignJar, dependsOn: universalJar) {
|
||||||
onlyIf {
|
onlyIf {
|
||||||
project.hasProperty('jarsigner')
|
project.hasProperty('jarsigner') && universalJar.state.failure == null
|
||||||
}
|
}
|
||||||
|
|
||||||
def jarsigner = [:];
|
def jarsigner = [:];
|
||||||
|
|
||||||
if (project.hasProperty('jarsigner'))
|
if (project.hasProperty('jarsigner'))
|
||||||
jarsigner = project.jarsigner;
|
jarsigner = project.jarsigner;
|
||||||
|
|
||||||
|
@ -458,20 +481,59 @@ project(':forge') {
|
||||||
keyStore = jarsigner.keystore
|
keyStore = jarsigner.keystore
|
||||||
inputFile = universalJar.archivePath
|
inputFile = universalJar.archivePath
|
||||||
outputFile = universalJar.archivePath
|
outputFile = universalJar.archivePath
|
||||||
|
doFirst {
|
||||||
|
project.logger.lifecycle('Signing: ' + inputFile)
|
||||||
}
|
}
|
||||||
publish.dependsOn signUniversal
|
}
|
||||||
build.dependsOn signUniversal
|
universalJar.finalizedBy(signUniversal)
|
||||||
|
|
||||||
/*
|
task downloadInstaller(type: DownloadMavenArtifact) {
|
||||||
installer {
|
artifact = 'net.minecraftforge:installer:2.+:shrunk'
|
||||||
dependsOn signUniversal
|
|
||||||
classifier = 'installer'
|
|
||||||
from extraTxts
|
|
||||||
from "src/main/resources/forge_logo.png"
|
|
||||||
from "src/main/resources/url.png"
|
|
||||||
rename "forge_logo\\.png", "big_logo.png"
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
task installerJar(type: Zip, dependsOn: [downloadInstaller, universalJar, installerJson, launcherJson, genClientBinPatches, genServerBinPatches]) {
|
||||||
|
classifier = 'installer'
|
||||||
|
extension = 'jar' //Needs to be Zip task to not override Manifest, so set extension
|
||||||
|
from(extraTxts)
|
||||||
|
from(rootProject.file('/src/main/resources/forge_logo.png')) {
|
||||||
|
rename{'big_logo.png'}
|
||||||
|
}
|
||||||
|
from(rootProject.file('/src/main/resources/url.png'))
|
||||||
|
from(genClientBinPatches.output) {
|
||||||
|
rename{'data/client.lzma'}
|
||||||
|
}
|
||||||
|
from(genServerBinPatches.output) {
|
||||||
|
rename{'data/server.lzma'}
|
||||||
|
}
|
||||||
|
from(universalJar) {
|
||||||
|
into "/maven/${project.group.replace('.', '/')}/${project.name}/${project.version}/"
|
||||||
|
}
|
||||||
|
from(installerJson.output)
|
||||||
|
from(launcherJson.output)
|
||||||
|
from(zipTree(downloadInstaller.output)) {
|
||||||
|
duplicatesStrategy = 'exclude'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task signInstaller(type: SignJar, dependsOn: installerJar) {
|
||||||
|
onlyIf {
|
||||||
|
project.hasProperty('jarsigner') && installerJar.state.failure == null
|
||||||
|
}
|
||||||
|
|
||||||
|
def jarsigner = [:];
|
||||||
|
if (project.hasProperty('jarsigner'))
|
||||||
|
jarsigner = project.jarsigner;
|
||||||
|
|
||||||
|
alias = 'forge'
|
||||||
|
storePass = jarsigner.storepass
|
||||||
|
keyPass = jarsigner.keypass
|
||||||
|
keyStore = jarsigner.keystore
|
||||||
|
inputFile = installerJar.archivePath
|
||||||
|
outputFile = installerJar.archivePath
|
||||||
|
doFirst {
|
||||||
|
project.logger.lifecycle('Signing: ' + inputFile)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
signInstaller.finalizedBy(signInstaller)
|
||||||
|
|
||||||
task makeMdk(type: Zip) {
|
task makeMdk(type: Zip) {
|
||||||
baseName = project.name
|
baseName = project.name
|
||||||
|
|
Loading…
Reference in New Issue