diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 44dabae2a..d008007ce 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -185,6 +185,13 @@ public final class Settings { *

* Defaults to false because this fails on constantiam. Please let me know if this is ever disabled. Please. */ + public final Setting allowJumpAtBuildLimit = new Setting<>(false); + + /** + * Just here so mods that use the API don't break. Does nothing. + */ + @Deprecated + @JavaOnly public final Setting allowJumpAt256 = new Setting<>(false); /** diff --git a/src/api/java/baritone/api/utils/SettingsUtil.java b/src/api/java/baritone/api/utils/SettingsUtil.java index 7a18b61c3..57ba8af90 100644 --- a/src/api/java/baritone/api/utils/SettingsUtil.java +++ b/src/api/java/baritone/api/utils/SettingsUtil.java @@ -83,6 +83,10 @@ public class SettingsUtil { String settingName = matcher.group("setting").toLowerCase(); String settingValue = matcher.group("value"); + // TODO remove soonish + if ("allowjumpat256".equals(settingName)) { + settingName = "allowjumpatbuildlimit"; + } try { parseAndApply(settings, settingName, settingValue); } catch (Exception ex) { diff --git a/src/main/java/baritone/command/defaults/RenderCommand.java b/src/main/java/baritone/command/defaults/RenderCommand.java index 543c3387c..308391241 100644 --- a/src/main/java/baritone/command/defaults/RenderCommand.java +++ b/src/main/java/baritone/command/defaults/RenderCommand.java @@ -40,10 +40,10 @@ public class RenderCommand extends Command { int renderDistance = (ctx.minecraft().options.renderDistance().get() + 1) * 16; ctx.minecraft().levelRenderer.setBlocksDirty( origin.x - renderDistance, - 0, + ctx.world().getMinBuildHeight(), origin.z - renderDistance, origin.x + renderDistance, - 255, + ctx.world().getMaxBuildHeight(), origin.z + renderDistance ); logDirect("Done"); diff --git a/src/main/java/baritone/command/defaults/TunnelCommand.java b/src/main/java/baritone/command/defaults/TunnelCommand.java index dec304a03..9e1cca1cb 100644 --- a/src/main/java/baritone/command/defaults/TunnelCommand.java +++ b/src/main/java/baritone/command/defaults/TunnelCommand.java @@ -44,7 +44,7 @@ public class TunnelCommand extends Command { int width = Integer.parseInt(args.getArgs().get(1).getValue()); int depth = Integer.parseInt(args.getArgs().get(2).getValue()); - if (width < 1 || height < 2 || depth < 1 || height > 255) { + if (width < 1 || height < 2 || depth < 1 || height > ctx.world().getMaxBuildHeight()){ logDirect("Width and depth must at least be 1 block; Height must at least be 2 blocks, and cannot be greater than the build limit."); cont = false; } diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index e84188a7f..ffd1a2fca 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -63,7 +63,7 @@ public class CalculationContext { public final List allowBreakAnyway; public final boolean allowParkour; public final boolean allowParkourPlace; - public final boolean allowJumpAt256; + public final boolean allowJumpAtBuildLimit; public final boolean allowParkourAscend; public final boolean assumeWalkOnWater; public boolean allowFallIntoLava; @@ -104,7 +104,7 @@ public class CalculationContext { this.allowBreakAnyway = new ArrayList<>(Baritone.settings().allowBreakAnyway.value); this.allowParkour = Baritone.settings().allowParkour.value; this.allowParkourPlace = Baritone.settings().allowParkourPlace.value; - this.allowJumpAt256 = Baritone.settings().allowJumpAt256.value; + this.allowJumpAtBuildLimit = Baritone.settings().allowJumpAtBuildLimit.value; this.allowParkourAscend = Baritone.settings().allowParkourAscend.value; this.assumeWalkOnWater = Baritone.settings().assumeWalkOnWater.value; this.allowFallIntoLava = false; // Super secret internal setting for ElytraBehavior diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java index 07d6d7d01..0b84ef4db 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java @@ -147,9 +147,9 @@ public class MovementDescend extends Movement { int effectiveStartHeight = y; for (int fallHeight = 3; true; fallHeight++) { int newY = y - fallHeight; - if (newY < 0) { + if (newY < context.world.getMinBuildHeight()) { // when pathing in the end, where you could plausibly fall into the void - // this check prevents it from getting the block at y=-1 and crashing + // this check prevents it from getting the block at y=(below whatever the minimum height is) and crashing return false; } boolean reachedMinimum = fallHeight >= context.minFallHeight; diff --git a/src/main/java/baritone/pathing/movement/movements/MovementParkour.java b/src/main/java/baritone/pathing/movement/movements/MovementParkour.java index 1fa150a21..1e04b6842 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementParkour.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementParkour.java @@ -64,10 +64,9 @@ public class MovementParkour extends Movement { if (!context.allowParkour) { return; } - if (y == 256 && !context.allowJumpAt256) { + if (!context.allowJumpAtBuildLimit && y >= context.world.getMaxBuildHeight()) { return; } - int xDiff = dir.getStepX(); int zDiff = dir.getStepZ(); if (!MovementHelper.fullyPassable(context, x + xDiff, y, z + zDiff)) { diff --git a/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java b/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java index 19b04b454..9f4bddf12 100644 --- a/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java +++ b/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java @@ -56,12 +56,12 @@ public final class BlockStateInterfaceAccessWrapper implements BlockGetter { @Override public int getHeight() { - return 255; + return bsi.world.getHeight(); } @Override public int getMinBuildHeight() { - return 0; + return bsi.world.getMinBuildHeight(); } }