From 1f4df615ec06cfd31df2564b2c0fb1cc1f59f5cd Mon Sep 17 00:00:00 2001 From: lyizai <3945107889@qq.com> Date: Tue, 1 Sep 2026 20:36:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=A9=BA=E9=97=B2=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=BD=BB=E5=BA=95=E9=9D=99=E9=BB=98=EF=BC=8C=E4=B8=8D=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E4=BB=BB=E4=BD=95=E8=87=AA=E5=8A=A8=E8=A1=8C=E4=B8=BA?= =?UTF-8?q?=20(v2.2.4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + gradle.properties | 2 +- .../client/controller/DigController.java | 78 +++++++++---------- 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 0094eb4..e622bfd 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ ## 版本记录 +- **v2.2.4**:空闲状态彻底静默——不开挖矿任务时不触发任何自动行为(杀戮光环、自动进食、丢垃圾、搭路、换装全部暂停),完全不干扰玩家正常游玩。 - **v2.2.3**:修复下界多个问题——垃圾清单补充灵魂沙/灵魂土/岩浆块/沙砾/下界砖;进食时不再被工具切换打断(镐子/食物来回切换);下界挖掘重构:挖矿中不再每秒重发指令(解决灵魂沙抽搐/来回折返不挖),寻路失败不再误判"任务完成"回主世界,而是空闲一段时间后自动转移到新矿区继续找矿。 - **v2.2.2**:新增无路自动搭方块(可开关):Baritone 放置方块搭桥/垫脚,自动补给快捷栏搭路方块并喂给 Baritone 可放置物品清单;AutoTrash 不再丢弃快捷栏物品。 - **v2.2.1**:移除自动火把;新增主世界矿物绕道挖掘(附近 10 格目标矿物自动挖掉,不漏矿);新增工具适用性检查(远古残骸等自动换钻石镐);支巷长度可配置(默认 10);矿物 id 兼容 `minecraft:` 前缀。 diff --git a/gradle.properties b/gradle.properties index c53fbf6..a7b0629 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ yarn_mappings=1.21.4+build.8 loader_version=0.19.3 # Mod Properties -mod_version=2.2.3 +mod_version=2.2.4 maven_group=autodig archives_base_name=autodig diff --git a/src/main/java/autodig/client/controller/DigController.java b/src/main/java/autodig/client/controller/DigController.java index 636ce4d..2b17910 100644 --- a/src/main/java/autodig/client/controller/DigController.java +++ b/src/main/java/autodig/client/controller/DigController.java @@ -62,6 +62,18 @@ public final class DigController { } PlayerEntity player = client.player; + // 空闲状态:不触发任何自动行为(杀戮光环/自动进食/丢垃圾/搭路/换装等全部关闭), + // 完全不干扰玩家正常游玩 + if (config.task == MineTask.NONE) { + if (this.state != State.IDLE) { + this.bridge.cancelAll(); + this.stats.stop(); + this.setState(State.IDLE, "任务已停止,进入空闲状态"); + } + return; + } + + // 以下均为挖矿任务进行中的自动行为 // 常驻能力:杀戮光环、自动进食、背包满丢垃圾、搭路方块补给、换装冷却 this.killAura.tick(config); this.autoEat.tick(config); @@ -81,48 +93,36 @@ public final class DigController { } // 装备耐久保护(仅在挖矿任务进行中检查) - if (config.task != MineTask.NONE) { - boolean gearLow = this.isGearLowDurability(config, player); - if (this.state == State.GEAR_PROTECTION) { - // 保护中持续尝试自动换上备用装备,换上后自动恢复任务 - if (config.autoGearSwap && gearLow) { - this.autoGear.handleLowGear(config, player); - gearLow = this.isGearLowDurability(config, player); - } - if (!gearLow) { - this.setState(this.preGearState != null ? this.preGearState : State.IDLE, - "装备耐久已恢复,继续挖矿"); - this.preGearState = null; - } else { - // 仍在装备保护中,等待换装生效或玩家手动处理 - return; - } - } else if (gearLow) { - // 先尝试自动换上背包里的备用装备,能换就不打断挖矿 - if (!(config.autoGearSwap && this.autoGear.handleLowGear(config, player))) { - this.preGearState = this.state; - this.bridge.cancelAll(); - // 下界模式:无备用装备时直接返程回主世界 - if (config.task == MineTask.NETHER && config.netherAutoReturn) { - this.nether.markGearBroken(); - this.setState(State.NETHER, "装备耐久过低且无备用装备,下界返程中"); - } else { - this.setState(State.GEAR_PROTECTION, "装备耐久过低且无备用装备,暂停挖矿保装备"); - } - return; - } - // 换装成功:继续正常流程 + boolean gearLow = this.isGearLowDurability(config, player); + if (this.state == State.GEAR_PROTECTION) { + // 保护中持续尝试自动换上备用装备,换上后自动恢复任务 + if (config.autoGearSwap && gearLow) { + this.autoGear.handleLowGear(config, player); + gearLow = this.isGearLowDurability(config, player); } - } - - // 未选择任务时归位:空闲模式下不触发保命/装备保护/杀戮光环等自动行为 - if (config.task == MineTask.NONE) { - if (this.state != State.IDLE) { + if (!gearLow) { + this.setState(this.preGearState != null ? this.preGearState : State.IDLE, + "装备耐久已恢复,继续挖矿"); + this.preGearState = null; + } else { + // 仍在装备保护中,等待换装生效或玩家手动处理 + return; + } + } else if (gearLow) { + // 先尝试自动换上背包里的备用装备,能换就不打断挖矿 + if (!(config.autoGearSwap && this.autoGear.handleLowGear(config, player))) { + this.preGearState = this.state; this.bridge.cancelAll(); - this.stats.stop(); - this.setState(State.IDLE, "任务已停止,进入空闲状态"); + // 下界模式:无备用装备时直接返程回主世界 + if (config.task == MineTask.NETHER && config.netherAutoReturn) { + this.nether.markGearBroken(); + this.setState(State.NETHER, "装备耐久过低且无备用装备,下界返程中"); + } else { + this.setState(State.GEAR_PROTECTION, "装备耐久过低且无备用装备,暂停挖矿保装备"); + } + return; } - return; + // 换装成功:继续正常流程 } // 保命优先:仅在挖矿任务进行中生效,血线过低时向上撤离