diff --git a/.gitignore b/.gitignore index 191a4edc5..fe4b0d407 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ mapping libs/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar libs/java-objc-bridge-1.1.jar + +mapping diff --git a/README.md b/README.md index bc3552c5a..11a12e822 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ Minecraft Minecraft Minecraft - Minecraft + Minecraft Minecraft - Minecraft + Minecraft Minecraft Minecraft Minecraft @@ -60,7 +60,7 @@ Baritone is the pathfinding system used in [Impact](https://impactclient.net/) s | Forge | Fabric | |---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------| -| [1.12.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.2.18/baritone-api-forge-1.2.18.jar) | | +| [1.12.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.2.19/baritone-api-forge-1.2.19.jar) | | | [1.16.5 Forge](https://github.com/cabaletta/baritone/releases/download/v1.6.5/baritone-api-forge-1.6.5.jar) | [1.16.5 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.6.5/baritone-api-fabric-1.6.5.jar) | | [1.17.1 Forge](https://github.com/cabaletta/baritone/releases/download/v1.7.3/baritone-api-forge-1.7.3.jar) | [1.17.1 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.7.3/baritone-api-fabric-1.7.3.jar) | | [1.18.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.8.5/baritone-api-forge-1.8.5.jar) | [1.18.2 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.8.5/baritone-api-fabric-1.8.5.jar) | diff --git a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java index 48e44350c..6a1186cfc 100644 --- a/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java +++ b/buildSrc/src/main/java/baritone/gradle/task/ProguardTask.java @@ -126,6 +126,9 @@ public class ProguardTask extends BaritoneGradleTask { ex.printStackTrace(); } + path = findJavaByGradleCurrentRuntime(); + if (path != null) return path; + try { path = findJavaByJavaHome(); if (path != null) return path; @@ -134,10 +137,6 @@ public class ProguardTask extends BaritoneGradleTask { ex.printStackTrace(); } - - path = findJavaByGradleCurrentRuntime(); - if (path != null) return path; - 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)"); } diff --git a/src/main/java/baritone/process/elytra/ElytraBehavior.java b/src/main/java/baritone/process/elytra/ElytraBehavior.java index 2b105b75e..f3c050c16 100644 --- a/src/main/java/baritone/process/elytra/ElytraBehavior.java +++ b/src/main/java/baritone/process/elytra/ElytraBehavior.java @@ -334,12 +334,19 @@ public final class ElytraBehavior implements Helper { } if (!ElytraBehavior.this.clearView(this.path.getVec(i), this.path.getVec(i + 1), false)) { // obstacle. where do we return to pathing? - // find the next valid segment + // if the end of render distance is closer to goal, then that's fine, otherwise we'd be "digging our hole deeper" and making an already bad backtrack worse + int rejoinMainPathAt; + if (this.path.get(rangeEndExcl - 1).distanceSq(this.path.get(path.size() - 1)) < ctx.playerFeet().distanceSq(this.path.get(path.size() - 1))) { + rejoinMainPathAt = rangeEndExcl - 1; // rejoin after current render distance + } else { + rejoinMainPathAt = path.size() - 1; // large backtrack detected. ignore render distance, rejoin later on + } + final BetterBlockPos blockage = this.path.get(i); - final double distance = ctx.playerFeet().distanceTo(this.path.get(rangeEndExcl - 1)); + final double distance = ctx.playerFeet().distanceTo(this.path.get(rejoinMainPathAt)); final long start = System.nanoTime(); - this.pathRecalcSegment(rangeEndExcl - 1) + this.pathRecalcSegment(rejoinMainPathAt) .thenRun(() -> { logDirect(String.format("Recalculated segment around path blockage near %s %s %s (next %.1f blocks in %.4f seconds)", SettingsUtil.maybeCensor(blockage.x),