From 287addb9fdbfa1bc9ec34c32c99c75946da1877e Mon Sep 17 00:00:00 2001 From: scorbett123 <50634068+scorbett123@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:46:58 +0100 Subject: [PATCH 1/2] Fix for infinite loop in water --- .../baritone/pathing/movement/movements/MovementTraverse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java index 91128b950..adcc48032 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java @@ -70,7 +70,7 @@ public class MovementTraverse extends Movement { @Override protected Set calculateValidPositions() { - return ImmutableSet.of(src, dest); + return ImmutableSet.of(src, src.above(), dest); // src.above means that we don't get caught in an infinite loop in water } public static double cost(CalculationContext context, int x, int y, int z, int destX, int destZ) { From 8f514bd7821bd992ef40144568b23d72b4fcfa00 Mon Sep 17 00:00:00 2001 From: scorbett123 <50634068+scorbett123@users.noreply.github.com> Date: Mon, 3 Oct 2022 21:22:07 +0100 Subject: [PATCH 2/2] Cleaner fix for water jump issue --- src/main/java/baritone/pathing/movement/Movement.java | 2 +- .../baritone/pathing/movement/movements/MovementTraverse.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/baritone/pathing/movement/Movement.java b/src/main/java/baritone/pathing/movement/Movement.java index 03ac7022f..d319cea62 100644 --- a/src/main/java/baritone/pathing/movement/Movement.java +++ b/src/main/java/baritone/pathing/movement/Movement.java @@ -123,7 +123,7 @@ public abstract class Movement implements IMovement, MovementHelper { public MovementStatus update() { ctx.player().getAbilities().flying = false; currentState = updateState(currentState); - if (MovementHelper.isLiquid(ctx, ctx.playerFeet())) { + if (MovementHelper.isLiquid(ctx, ctx.playerFeet()) && ctx.player().position().y < dest.y + 0.6) { currentState.setInput(Input.JUMP, true); } if (ctx.player().isInWall()) { diff --git a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java index adcc48032..02426c46a 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java @@ -70,7 +70,7 @@ public class MovementTraverse extends Movement { @Override protected Set calculateValidPositions() { - return ImmutableSet.of(src, src.above(), dest); // src.above means that we don't get caught in an infinite loop in water + return ImmutableSet.of(src, dest); // src.above means that we don't get caught in an infinite loop in water } public static double cost(CalculationContext context, int x, int y, int z, int destX, int destZ) { @@ -237,6 +237,7 @@ public class MovementTraverse extends Movement { if (feet.getY() != dest.getY() && !ladder) { logDebug("Wrong Y coordinate"); if (feet.getY() < dest.getY()) { + System.out.println("In movement traverse"); return state.setInput(Input.JUMP, true); } return state;