From 46f882995107e336e01d268303ec36c0f4746227 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Thu, 7 Feb 2019 09:16:19 -0800 Subject: [PATCH 1/3] v1.1.4 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0833e04d..ceb024c1 100755 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ */ group 'baritone' -version '1.1.3' +version '1.1.4' buildscript { repositories { From c0761c0eeff7f193e4b723c1964cfd512b6277f0 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Thu, 7 Feb 2019 10:46:32 -0800 Subject: [PATCH 2/3] be more tolerant of alternate movement inputs --- .../baritone/utils/InputOverrideHandler.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/baritone/utils/InputOverrideHandler.java b/src/main/java/baritone/utils/InputOverrideHandler.java index 93fbe875..30ec8409 100755 --- a/src/main/java/baritone/utils/InputOverrideHandler.java +++ b/src/main/java/baritone/utils/InputOverrideHandler.java @@ -25,7 +25,6 @@ import baritone.api.utils.input.Input; import baritone.behavior.Behavior; import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; -import net.minecraft.util.MovementInput; import net.minecraft.util.MovementInputFromOptions; import java.util.HashMap; @@ -111,14 +110,17 @@ public final class InputOverrideHandler extends Behavior implements IInputOverri } blockBreakHelper.tick(isInputForcedDown(Input.CLICK_LEFT)); - MovementInput desired = inControl() - ? new PlayerMovementInput(this) - : new MovementInputFromOptions(Minecraft.getMinecraft().gameSettings); - - if (ctx.player().movementInput.getClass() != desired.getClass()) { - ctx.player().movementInput = desired; // only set it if it was previously incorrect - // gotta do it this way, or else it constantly thinks you're beginning a double tap W sprint lol + if (inControl()) { + if (ctx.player().movementInput.getClass() != PlayerMovementInput.class) { + ctx.player().movementInput = new PlayerMovementInput(this); + } + } else { + if (ctx.player().movementInput.getClass() == PlayerMovementInput.class) { + ctx.player().movementInput = new MovementInputFromOptions(Minecraft.getMinecraft().gameSettings); + } } + // only set it if it was previously incorrect + // gotta do it this way, or else it constantly thinks you're beginning a double tap W sprint lol } private boolean inControl() { From 6faa7344aad5aa8733b246ec07fef6dceca83582 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Thu, 7 Feb 2019 14:11:18 -0800 Subject: [PATCH 3/3] properly discard orphan path segments --- src/main/java/baritone/behavior/PathingBehavior.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/baritone/behavior/PathingBehavior.java b/src/main/java/baritone/behavior/PathingBehavior.java index 8339625d..3776f55e 100644 --- a/src/main/java/baritone/behavior/PathingBehavior.java +++ b/src/main/java/baritone/behavior/PathingBehavior.java @@ -61,6 +61,8 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior, private boolean lastAutoJump; + private BlockPos expectedSegmentStart; + private final LinkedBlockingQueue toDispatch = new LinkedBlockingQueue<>(); public PathingBehavior(Baritone baritone) { @@ -88,6 +90,7 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior, baritone.getPathingControlManager().cancelEverything(); return; } + expectedSegmentStart = pathStart(); baritone.getPathingControlManager().preTick(); tickPath(); dispatchEvents(); @@ -438,8 +441,12 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior, Optional executor = calcResult.getPath().map(p -> new PathExecutor(PathingBehavior.this, p)); if (current == null) { if (executor.isPresent()) { - queuePathEvent(PathEvent.CALC_FINISHED_NOW_EXECUTING); - current = executor.get(); + if (executor.get().getPath().getSrc().equals(expectedSegmentStart)) { + queuePathEvent(PathEvent.CALC_FINISHED_NOW_EXECUTING); + current = executor.get(); + } else { + logDebug("Warning: discarding orphan path segment with incorrect start"); + } } else { if (calcResult.getType() != PathCalculationResult.Type.CANCELLATION && calcResult.getType() != PathCalculationResult.Type.EXCEPTION) { // don't dispatch CALC_FAILED on cancellation