diff --git a/src/api/java/baritone/api/behavior/IPathingBehavior.java b/src/api/java/baritone/api/behavior/IPathingBehavior.java index ced3d8612..622c453a8 100644 --- a/src/api/java/baritone/api/behavior/IPathingBehavior.java +++ b/src/api/java/baritone/api/behavior/IPathingBehavior.java @@ -53,8 +53,10 @@ public interface IPathingBehavior extends IBehavior { * Cancels the pathing behavior or the current path calculation. Also cancels all processes that could be controlling path. *

* Basically, "MAKE IT STOP". + * + * @return whether or not the pathing behavior was canceled. All processes are guaranteed to be canceled, but the PathingBehavior might be in the middle of an uncancelable action like a parkour jump */ - void cancelEverything(); + boolean cancelEverything(); /** * Returns the current path, from the current path executor, if there is one. diff --git a/src/main/java/baritone/behavior/PathingBehavior.java b/src/main/java/baritone/behavior/PathingBehavior.java index 03641ac5e..9582f3c58 100644 --- a/src/main/java/baritone/behavior/PathingBehavior.java +++ b/src/main/java/baritone/behavior/PathingBehavior.java @@ -254,9 +254,13 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior, } @Override - public void cancelEverything() { - secretInternalSegmentCancel(); + public boolean cancelEverything() { + boolean doIt = isSafeToCancel(); + if (doIt) { + secretInternalSegmentCancel(); + } baritone.getPathingControlManager().cancelEverything(); + return doIt; } public boolean calcFailedLastTick() { // NOT exposed on public api @@ -275,6 +279,7 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior, public void forceCancel() { // NOT exposed on public api cancelEverything(); + secretInternalSegmentCancel(); isPathCalcInProgress = false; } diff --git a/src/main/java/baritone/process/GetToBlockProcess.java b/src/main/java/baritone/process/GetToBlockProcess.java index 8dd075609..7f5340ed1 100644 --- a/src/main/java/baritone/process/GetToBlockProcess.java +++ b/src/main/java/baritone/process/GetToBlockProcess.java @@ -79,7 +79,7 @@ public class GetToBlockProcess extends BaritoneProcessHelper implements IGetToBl if (goal.isInGoal(playerFeet())) { onLostControl(); } - return new PathingCommand(goal, PathingCommandType.SET_GOAL_AND_PATH); + return new PathingCommand(goal, PathingCommandType.REVALIDATE_GOAL_AND_PATH); } @Override