feat: 重构挖矿模式为主世界/下界,新增装备耐久保护与自定义矿物
- MineTask: DIAMOND->OVERWORLD, ANCIENT_DEBRIS->NETHER, 移除钻石/远古残骸硬编码 - DigConfig: 新增主世界/下界可选矿物列表、护甲/工具耐久保护阈值、下界返程血量阈值、目标数量 - AutoDigCommands: 支持 overworld/nether/none 任务名 - OverworldMiner: 重命名自 FishboneMiner, 支持配置矿物列表 - NetherMiner: 重命名自 DebrisHandler, 支持配置矿物、血量/耐久/背包满自动返程 - DigController: 新增 GEAR_PROTECTION 状态, 装备耐久过低暂停挖矿/触发下界返程 - AutoDigGui: 更新任务按钮、矿物预设循环、装备耐久/返程阈值设置 - ConfigStore: 扩展 sanitize 校验新字段 - 版本升级: 1.0.0 -> 2.0.0
这个提交包含在:
@@ -4,6 +4,7 @@ import autodig.client.bridge.BaritoneBridge;
|
||||
import autodig.client.command.AutoDigCommands;
|
||||
import autodig.client.config.ConfigStore;
|
||||
import autodig.client.config.DigConfig;
|
||||
import autodig.client.config.MineTask;
|
||||
import autodig.client.controller.DigController;
|
||||
import autodig.client.gui.AutoDigGui;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
@@ -35,6 +36,8 @@ public final class AutoDigModClient implements ClientModInitializer {
|
||||
private DigConfig config;
|
||||
private boolean openGuiRequested;
|
||||
private KeyBinding guiKey;
|
||||
/** 上一次同步的任务,用于检测 controller 内部改动(如任务完成)并落盘 */
|
||||
private MineTask lastTask;
|
||||
|
||||
private static final int KEY_R = 82;
|
||||
private static final int KEY_LEFT_CTRL = 341;
|
||||
@@ -44,15 +47,23 @@ public final class AutoDigModClient implements ClientModInitializer {
|
||||
public void onInitializeClient() {
|
||||
instance = this;
|
||||
this.config = this.configStore.load();
|
||||
this.lastTask = this.config.task;
|
||||
this.guiKey = KeyBindingHelper.registerKeyBinding(new KeyBinding(
|
||||
"key.autodig.open", KEY_R, "category.autodig"));
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
// 同步模组配置到 Baritone(工具切换 / 避岩浆 / 避怪/保命)
|
||||
this.bridge().applyConfig(this.config);
|
||||
this.controller.tick(this.config);
|
||||
// controller 可能因任务完成而把 task 置空,这里落盘,避免下次进游戏自动挖矿
|
||||
if (this.config.task != this.lastTask) {
|
||||
this.lastTask = this.config.task;
|
||||
this.saveConfig();
|
||||
}
|
||||
while (this.guiKey.wasPressed()) {
|
||||
if (this.isCtrlDown(client)) {
|
||||
this.openGui();
|
||||
} else {
|
||||
this.sendToast("AutoDig: 请按住 Ctrl 再按此快捷键打开界面");
|
||||
}
|
||||
}
|
||||
if (this.openGuiRequested) {
|
||||
|
||||
在新工单中引用
屏蔽一个用户