From 413c11a23e02050eae6e7839fc9110eee78b278d Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 9 Mar 2024 13:22:15 -0800 Subject: [PATCH] block break delay setting --- src/api/java/baritone/api/Settings.java | 7 +++++++ src/main/java/baritone/utils/BlockBreakHelper.java | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 5e33b39ba..5dd68ab6a 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -385,6 +385,13 @@ public final class Settings { */ public final Setting blockReachDistance = new Setting<>(4.5f); + + /** + * Delay between breaking a block and starting to break the next block. The vanilla delay is 6 ticks. + * Baritone waits an additional 2 ticks on top of this setting value. + */ + public final Setting blockBreakDelay = new Setting<>(4); + /** * How many degrees to randomize the pitch and yaw every tick. Set to 0 to disable */ diff --git a/src/main/java/baritone/utils/BlockBreakHelper.java b/src/main/java/baritone/utils/BlockBreakHelper.java index 2d209c721..f6cc58837 100644 --- a/src/main/java/baritone/utils/BlockBreakHelper.java +++ b/src/main/java/baritone/utils/BlockBreakHelper.java @@ -17,6 +17,7 @@ package baritone.utils; +import baritone.api.BaritoneAPI; import baritone.api.utils.IPlayerContext; import net.minecraft.world.InteractionHand; import net.minecraft.world.phys.BlockHitResult; @@ -30,6 +31,7 @@ public final class BlockBreakHelper { private final IPlayerContext ctx; private boolean didBreakLastTick; + private int breakDelay = 0; BlockBreakHelper(IPlayerContext ctx) { this.ctx = ctx; @@ -48,6 +50,11 @@ public void stopBreakingBlock() { } public void tick(boolean isLeftClick) { + if (breakDelay > 0) { + breakDelay--; + return; + } + HitResult trace = ctx.objectMouseOver(); boolean isBlockTrace = trace != null && trace.getType() == HitResult.Type.BLOCK; @@ -68,6 +75,7 @@ public void tick(boolean isLeftClick) { didBreakLastTick = true; } else if (didBreakLastTick) { stopBreakingBlock(); + breakDelay = BaritoneAPI.getSettings().blockBreakDelay.value; didBreakLastTick = false; } }