From eafca1e1fe46d277fc573760b68ce5beae315ef2 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Mon, 6 Jul 2020 17:07:59 -0700 Subject: [PATCH 1/9] yourkit --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d36fdcc..16641d61 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,16 @@ That's what it's for, sure! (As long as usage is in compliance with the LGPL 3.0 Magic. (Hours of [leijurv](https://github.com/leijurv/) enduring excruciating pain) +### Additional Special Thanks To: + +![YourKit-Logo](https://www.yourkit.com/images/yklogo.png) + +YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. + +YourKit is the creator of the [YourKit Java Profiler](https://www.yourkit.com/java/profiler/), [YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/), and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/). + +We thank them for granting Baritone an OSS license so that we can make our software the best it can be. + ## Why is it called Baritone? -It's named for FitMC's deep sultry voice. +It's named for FitMC's deep sultry voice. From f02476ff3aaf722f2dd76e5c94d0fce27b8e0760 Mon Sep 17 00:00:00 2001 From: CorruptedSeal <68251040+CorruptedSeal@users.noreply.github.com> Date: Wed, 15 Jul 2020 01:18:01 -0600 Subject: [PATCH 2/9] Update ProguardTask.java --- .../baritone/gradle/task/ProguardTask.java | 105 +++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java index 30ffddfb..dbeca172 100644 --- a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java +++ b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java @@ -21,13 +21,21 @@ import baritone.gradle.util.Determinizer; import baritone.gradle.util.MappingType; import baritone.gradle.util.ReobfWrapper; import org.apache.commons.io.IOUtils; +import org.gradle.api.JavaVersion; import org.gradle.api.NamedDomainObjectContainer; import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Dependency; +import org.gradle.api.internal.file.IdentityFileResolver; import org.gradle.api.internal.plugins.DefaultConvention; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.TaskCollection; +import org.gradle.api.tasks.compile.ForkOptions; +import org.gradle.api.tasks.compile.JavaCompile; import org.gradle.internal.Pair; +import org.gradle.internal.jvm.Jvm; +import org.gradle.internal.jvm.inspection.DefaultJvmVersionDetector; +import org.gradle.process.internal.DefaultExecActionFactory; import java.io.*; import java.lang.reflect.Field; @@ -101,6 +109,101 @@ public class ProguardTask extends BaritoneGradleTask { } } + private String getJavaBinPathForProguard() { + String path; + try { + path = findJavaPathByGradleConfig(); + if (path != null) return path; + } + catch (Exception ex) { + System.err.println("Unable to find java by javaCompile options"); + ex.printStackTrace(); + } + + try { + path = findJavaByJavaHome(); + if (path != null) return path; + } + catch(Exception ex) { + System.err.println("Unable to find java by JAVA_HOME"); + ex.printStackTrace(); + } + + + path = findJavaByGradleCurrentRuntime(); + if (path != null) return path; + + throw new RuntimeException("Unable to find java to determine ProGuard libraryjars. Please specify forkOptions.executable in javaCompile," + + " JAVA_HOME environment variable, or make sure to run Gradle with the correct JDK (a v1.8 only)"); + } + + private String findJavaByGradleCurrentRuntime() { + String path = Jvm.current().getJavaExecutable().getAbsolutePath(); + + if (this.validateJavaVersion(path)) { + System.out.println("Using Gradle's runtime Java for ProGuard"); + return path; + } + return null; + } + + private String findJavaByJavaHome() { + final String javaHomeEnv = System.getenv("JAVA_HOME"); + if (javaHomeEnv != null) { + + String path = Jvm.forHome(new File(javaHomeEnv)).getJavaExecutable().getAbsolutePath(); + if (this.validateJavaVersion(path)) { + System.out.println("Detected Java path by JAVA_HOME"); + return path; + } + } + return null; + } + + private String findJavaPathByGradleConfig() { + final TaskCollection javaCompiles = super.getProject().getTasks().withType(JavaCompile.class); + + final JavaCompile compileTask = javaCompiles.iterator().next(); + final ForkOptions forkOptions = compileTask.getOptions().getForkOptions(); + + if (forkOptions != null) { + String javacPath = forkOptions.getExecutable(); + if (javacPath != null) { + File javacFile = new File(javacPath); + if (javacFile.exists()) { + File[] maybeJava = javacFile.getParentFile().listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.equals("java"); + } + }); + + if (maybeJava != null && maybeJava.length > 0) { + String path = maybeJava[0].getAbsolutePath(); + if (this.validateJavaVersion(path)) { + System.out.println("Detected Java path by forkOptions"); + return path; + } + } + } + } + } + return null; + } + + private boolean validateJavaVersion(String java) { + final JavaVersion javaVersion = new DefaultJvmVersionDetector(new DefaultExecActionFactory(new IdentityFileResolver())).getJavaVersion(java); + + if (!javaVersion.getMajorVersion().equals("8")) { + System.out.println("Failed to validate Java version " + javaVersion.toString() + " [" + java + "] for ProGuard libraryjars"); + // throw new RuntimeException("Java version incorrect: " + javaVersion.getMajorVersion() + " for " + java); + return false; + } + + System.out.println("Validated Java version " + javaVersion.toString() + " [" + java + "] for ProGuard libraryjars"); + return true; + } + private void generateConfigs() throws Exception { Files.copy(getRelativeFile(PROGUARD_CONFIG_TEMPLATE), getTemporaryFile(PROGUARD_CONFIG_DEST), REPLACE_EXISTING); @@ -110,7 +213,7 @@ public class ProguardTask extends BaritoneGradleTask { template.add(1, "-outjars " + this.getTemporaryFile(PROGUARD_EXPORT_PATH)); // Acquire the RT jar using "java -verbose". This doesn't work on Java 9+ - Process p = new ProcessBuilder("java", "-verbose").start(); + Process p = new ProcessBuilder(this.getJavaBinPathForProguard(), "-verbose").start(); String out = IOUtils.toString(p.getInputStream(), "UTF-8").split("\n")[0].split("Opened ")[1].replace("]", ""); template.add(2, "-libraryjars '" + out + "'"); From d522f9dfa3e2b5c000e4ebf8e57a6a00607f45ea Mon Sep 17 00:00:00 2001 From: CorruptedSeal <68251040+CorruptedSeal@users.noreply.github.com> Date: Wed, 15 Jul 2020 01:34:19 -0600 Subject: [PATCH 3/9] Update ProguardTask.java --- buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java index dbeca172..ead398b3 100644 --- a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java +++ b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java @@ -132,8 +132,8 @@ public class ProguardTask extends BaritoneGradleTask { path = findJavaByGradleCurrentRuntime(); if (path != null) return path; - - throw new RuntimeException("Unable to find java to determine ProGuard libraryjars. Please specify forkOptions.executable in javaCompile," + + + throw new Exception("Unable to find java to determine ProGuard libraryjars. Please specify forkOptions.executable in javaCompile," + " JAVA_HOME environment variable, or make sure to run Gradle with the correct JDK (a v1.8 only)"); } From cbb3483456c74e509b18e5ee98ea2369c65ee4b7 Mon Sep 17 00:00:00 2001 From: elongated muskrat <56513556+elonmusksama@users.noreply.github.com> Date: Thu, 16 Jul 2020 14:35:17 -0300 Subject: [PATCH 4/9] updated compatible versions to future badge updated the compatible versions to the future integrations badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16641d61..83305b61 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ [![Aristois add-on integration](https://img.shields.io/badge/Aristois%20add--on%20integration-v1.3.4%20/%20v1.4.1-green.svg)](https://gitlab.com/emc-mods-indrit/baritone_api) [![rootNET integration](https://img.shields.io/badge/rootNET%20integration-v1.2.11-green.svg)](https://rootnet.dev/) [![WWE integration](https://img.shields.io/badge/WWE%20%22integration%22-master%3F-green.svg)](https://wweclient.com/) -[![Future integration](https://img.shields.io/badge/Future%20integration-Soon™%3F%3F%3F-red.svg)](https://futureclient.net/) +[![Future integration](https://img.shields.io/badge/Future%20integration-v1.2.12%20%2F%20v1.3.6%20%2F%20v1.4.4-red)](https://futureclient.net/) [![forthebadge](https://forthebadge.com/images/badges/built-with-swag.svg)](http://forthebadge.com/) [![forthebadge](https://forthebadge.com/images/badges/mom-made-pizza-rolls.svg)](http://forthebadge.com/) From 2acf64a0d069e33eccb7e6d10840467809f8b843 Mon Sep 17 00:00:00 2001 From: John <43681932+John200410@users.noreply.github.com> Date: Mon, 20 Jul 2020 03:12:24 -0400 Subject: [PATCH 5/9] add rusherhack integration badge as of rusherhack v1.0 there is baritone API integration, similar to future's. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 83305b61..a095a2e5 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ [![rootNET integration](https://img.shields.io/badge/rootNET%20integration-v1.2.11-green.svg)](https://rootnet.dev/) [![WWE integration](https://img.shields.io/badge/WWE%20%22integration%22-master%3F-green.svg)](https://wweclient.com/) [![Future integration](https://img.shields.io/badge/Future%20integration-v1.2.12%20%2F%20v1.3.6%20%2F%20v1.4.4-red)](https://futureclient.net/) +[![RusherHack integration](https://img.shields.io/badge/RusherHack%20integration-v1.2.14-green)](https://rusherhack.org/) [![forthebadge](https://forthebadge.com/images/badges/built-with-swag.svg)](http://forthebadge.com/) [![forthebadge](https://forthebadge.com/images/badges/mom-made-pizza-rolls.svg)](http://forthebadge.com/) From 9e45998a656a2f203c874e831677b99d86028572 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Sun, 26 Jul 2020 13:21:51 -0700 Subject: [PATCH 6/9] brady shouldn't merge PRs that don't compile, thanks cdagaming --- buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java index ead398b3..01e56177 100644 --- a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java +++ b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java @@ -109,7 +109,7 @@ public class ProguardTask extends BaritoneGradleTask { } } - private String getJavaBinPathForProguard() { + private String getJavaBinPathForProguard() throws Exception { String path; try { path = findJavaPathByGradleConfig(); From c180eb9975257b8d18368b7de62c6e34b0fe4ea1 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Wed, 29 Jul 2020 12:52:19 -0700 Subject: [PATCH 7/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83305b61..0f33c9d5 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ ![Lines of Code](https://tokei.rs/b1/github/cabaletta/baritone?category=code) [![GitHub contributors](https://img.shields.io/github/contributors/cabaletta/baritone.svg)](https://github.com/cabaletta/baritone/graphs/contributors/) [![GitHub commits](https://img.shields.io/github/commits-since/cabaletta/baritone/v1.0.0.svg)](https://github.com/cabaletta/baritone/commit/) -[![Impact integration](https://img.shields.io/badge/Impact%20integration-v1.2.10%20/%20v1.3.5%20/%20v1.4.3-brightgreen.svg)](https://impactclient.net/) +[![Impact integration](https://img.shields.io/badge/Impact%20integration-v1.2.14%20/%20v1.3.8%20/%20v1.4.6%20/%20v1.5.3-brightgreen.svg)](https://impactclient.net/) [![KAMI Blue integration](https://img.shields.io/badge/KAMI%20Blue%20integration-v1.2.14--master-green)](https://github.com/kami-blue/client) [![ForgeHax integration](https://img.shields.io/badge/ForgeHax%20%22integration%22-scuffed-yellow.svg)](https://github.com/fr1kin/ForgeHax/) [![Aristois add-on integration](https://img.shields.io/badge/Aristois%20add--on%20integration-v1.3.4%20/%20v1.4.1-green.svg)](https://gitlab.com/emc-mods-indrit/baritone_api) From 7081cf7172d4b385dec5be95686089eeefc9ee44 Mon Sep 17 00:00:00 2001 From: orsondmc Date: Thu, 6 Aug 2020 16:23:13 +1000 Subject: [PATCH 8/9] Introduce startAtLayer to start building at a specific layer in the schematic. To be used only with buildWithLayers true. --- src/api/java/baritone/api/Settings.java | 6 ++++++ src/main/java/baritone/process/BuilderProcess.java | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 1bbde3b2..e3716751 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -752,6 +752,12 @@ public final class Settings { */ public final Setting layerOrder = new Setting<>(false); + /** + * Start building the schematic at a specific layer. + * Can help on larger builds when schematic wants to break things its already built + */ + public final Setting startAtLayer = new Setting<>(1); + /** * How far to move before repeating the build. 0 to disable repeating on a certain axis, 0,0,0 to disable entirely */ diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 17a8f5f9..e25a30af 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -97,7 +97,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil } this.origin = new Vec3i(x, y, z); this.paused = false; - this.layer = 0; + this.layer = Baritone.settings().startAtLayer.value; this.numRepeats = 0; this.observedCompleted = new LongOpenHashSet(); } @@ -743,7 +743,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil name = null; schematic = null; realSchematic = null; - layer = 0; + layer = Baritone.settings().startAtLayer.value; numRepeats = 0; paused = false; observedCompleted = null; From b187d860741c7e5b6cb6aab64a5b80dcdadec9a9 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Wed, 5 Aug 2020 23:31:32 -0700 Subject: [PATCH 9/9] fix orsond rock brain moment --- src/api/java/baritone/api/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index e3716751..3da1d21b 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -756,7 +756,7 @@ public final class Settings { * Start building the schematic at a specific layer. * Can help on larger builds when schematic wants to break things its already built */ - public final Setting startAtLayer = new Setting<>(1); + public final Setting startAtLayer = new Setting<>(0); /** * How far to move before repeating the build. 0 to disable repeating on a certain axis, 0,0,0 to disable entirely