fix: 空闲状态彻底静默,不触发任何自动行为 (v2.2.4)

这个提交包含在:
lyizai
2026-09-01 20:36:29 +08:00
父节点 e84ac7cf41
当前提交 1f4df615ec
共修改 3 个文件,包含 41 行新增和 40 行删除
+1
查看文件
@@ -42,6 +42,7 @@
## 版本记录
- **v2.2.4**:空闲状态彻底静默——不开挖矿任务时不触发任何自动行为(杀戮光环、自动进食、丢垃圾、搭路、换装全部暂停),完全不干扰玩家正常游玩。
- **v2.2.3**:修复下界多个问题——垃圾清单补充灵魂沙/灵魂土/岩浆块/沙砾/下界砖;进食时不再被工具切换打断(镐子/食物来回切换);下界挖掘重构:挖矿中不再每秒重发指令(解决灵魂沙抽搐/来回折返不挖),寻路失败不再误判"任务完成"回主世界,而是空闲一段时间后自动转移到新矿区继续找矿。
- **v2.2.2**:新增无路自动搭方块(可开关):Baritone 放置方块搭桥/垫脚,自动补给快捷栏搭路方块并喂给 Baritone 可放置物品清单;AutoTrash 不再丢弃快捷栏物品。
- **v2.2.1**:移除自动火把;新增主世界矿物绕道挖掘(附近 10 格目标矿物自动挖掉,不漏矿);新增工具适用性检查(远古残骸等自动换钻石镐);支巷长度可配置(默认 10);矿物 id 兼容 `minecraft:` 前缀。
+1 -1
查看文件
@@ -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
@@ -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;
// 换装成功:继续正常流程
}
// 保命优先:仅在挖矿任务进行中生效,血线过低时向上撤离