54215bdb18
When we make the next release, we need to specify in the setup files that Baritone now requires the SimpleTweaker dependency, and we need to remove the old alternate tweaker references. (Optifine and Forge)
136 lines
4.0 KiB
Groovy
Executable File
136 lines
4.0 KiB
Groovy
Executable File
import java.util.jar.JarEntry
|
|
import java.util.jar.JarFile
|
|
import java.util.jar.JarOutputStream
|
|
|
|
/*
|
|
* This file is part of Baritone.
|
|
*
|
|
* Baritone is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Baritone is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Baritone. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
group 'baritone'
|
|
version '0.0.8'
|
|
|
|
buildscript {
|
|
repositories {
|
|
maven {
|
|
name = 'forge'
|
|
url = 'http://files.minecraftforge.net/maven'
|
|
}
|
|
maven {
|
|
name = 'SpongePowered'
|
|
url = 'http://repo.spongepowered.org/maven'
|
|
}
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
|
|
classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'net.minecraftforge.gradle.tweaker-client'
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
|
|
sourceCompatibility = targetCompatibility = '1.8'
|
|
compileJava {
|
|
sourceCompatibility = targetCompatibility = '1.8'
|
|
}
|
|
|
|
sourceSets {
|
|
launch {
|
|
compileClasspath += main.compileClasspath + main.runtimeClasspath + main.output
|
|
}
|
|
}
|
|
|
|
minecraft {
|
|
version = '1.12.2'
|
|
mappings = 'snapshot_20180731'
|
|
tweakClass = 'baritone.launch.BaritoneTweaker'
|
|
runDir = 'run'
|
|
|
|
// The sources jar should use SRG names not MCP to ensure compatibility with all mappings
|
|
makeObfSourceJar = true
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
|
|
maven {
|
|
name = 'spongepowered-repo'
|
|
url = 'http://repo.spongepowered.org/maven/'
|
|
}
|
|
|
|
maven {
|
|
name = 'impactdevelopment-repo'
|
|
url = 'https://impactdevelopment.github.io/maven/'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
runtime launchCompile('com.github.ImpactDevelopment:SimpleTweaker:1.1')
|
|
runtime launchCompile('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
|
|
// Mixin includes a lot of dependencies that are too up-to-date
|
|
exclude module: 'launchwrapper'
|
|
exclude module: 'guava'
|
|
exclude module: 'gson'
|
|
exclude module: 'commons-io'
|
|
exclude module: 'log4j-core'
|
|
}
|
|
testImplementation 'junit:junit:4.12'
|
|
}
|
|
|
|
mixin {
|
|
defaultObfuscationEnv notch
|
|
add sourceSets.launch, 'mixins.baritone.refmap.json'
|
|
}
|
|
|
|
jar {
|
|
from sourceSets.launch.output, sourceSets.api.output
|
|
preserveFileTimestamps = false
|
|
reproducibleFileOrder = true
|
|
}
|
|
|
|
build {
|
|
// while "jar" supports preserveFileTimestamps false
|
|
// reobfJar doesn't, it just sets all the last modified times to that instant where it runs the reobfuscator
|
|
// so we have to set all those last modified times back to zero
|
|
doLast {
|
|
File jarFile = new File("build/libs/baritone-" + version + ".jar")
|
|
JarFile jf = new JarFile(jarFile)
|
|
JarOutputStream jos = new JarOutputStream(new FileOutputStream(new File("temp.jar")))
|
|
jf.entries().unique { it.name }.sort { it.name }.each {
|
|
if (it.name != "META-INF/fml_cache_annotation.json" && it.name != "META-INF/fml_cache_class_versions.json") {
|
|
JarEntry clone = new JarEntry(it)
|
|
clone.time = 0
|
|
jos.putNextEntry(clone)
|
|
copy(jf.getInputStream(it), jos)
|
|
}
|
|
}
|
|
jos.finish()
|
|
jf.close()
|
|
file("temp.jar").renameTo(jarFile)
|
|
}
|
|
}
|
|
|
|
void copy(InputStream is, OutputStream os) {
|
|
byte[] buffer = new byte[1024]
|
|
int len = 0
|
|
while ((len = is.read(buffer)) != -1) {
|
|
os.write(buffer, 0, len)
|
|
}
|
|
}
|