-
Notifications
You must be signed in to change notification settings - Fork 2
Task System
ZoyLuo edited this page Jun 5, 2026
·
1 revision
任务是 AIBot 真正"动手"的地方。每个任务是一个自包含的状态机:接收参数、自行推进、自带超时 / 卡死看门狗、最终走向 COMPLETED 或 FAILED。
-
Task/AbstractTask:任务接口与基类。子类实现onStart/onTick/onAbort,通过complete()/fail(reason)收尾。 -
TaskState:RUNNING·COMPLETED·FAILED等。 -
TaskManager:每个 bot 同时只有一个活跃任务;负责assign/abort/tickAll。 -
BotTickCoordinator:每游戏刻的总调度——先跑安全网,再推进 Goal Engine / 任务,最后是空闲协调。见 Safety Net。
G1 — 任务自包含。 任务内部绝不再
assign子任务,而是直接调用共享原语(BlockMiner、DigNav、ActionPack、HarvestCore)。这样不会出现"状态机套状态机"互相抢占的混乱。
G2 — 主线程执行。 所有任务逻辑跑在服务端主线程,保证对 Minecraft 世界的访问线程安全。
站桩类任务(挖矿、下挖时 bot 基本不动)会重写 isWaiting() 返回 true,告诉全局 StuckWatcher"我不是卡住,是在干活",改由任务自己的 NO_PROGRESS / timeout 看门狗兜底——避免被那个"位置/进度长时间不变即判卡死"的粗粒度监控误杀。
task 包共 44 个类,其中约 30 个是具体任务状态机,其余是基类、管理器、协调器与看门狗。
| 任务 | 说明 |
|---|---|
MoveTask |
寻路到坐标;走不通降级为挖掘式直行(遇水 / 挨打会安全熔断) |
FollowTask |
跟随玩家 |
GuardTask |
守卫某点 / 某人 |
| 任务 | 说明 |
|---|---|
MineTask |
挖暴露的目标方块 |
OreDigTask |
定向采矿,含探矿 + 矿脉清挖 |
StripMineTask |
条带挖矿 |
DescendToYTask |
台阶式下到指定 Y 层 |
DigDownTask |
台阶式向下采集(绝不直挖脚下) |
| 任务 | 说明 |
|---|---|
GatherQuotaTask |
采集到配额,含大范围探树 + 漫游换片 |
ForageTask |
采食 / 觅食 |
FarmTask |
耕种 / 收获作物 |
BreedTask |
繁殖动物 |
FishTask |
钓鱼 |
| 任务 | 说明 |
|---|---|
CraftTask |
合成(按背包实际材料展开,如任意原木→木板) |
SmeltTask |
熔炉冶炼(含取燃料 / 走向熔炉兜底) |
| 任务 | 说明 |
|---|---|
CombatTask(+CombatCore) |
近战,含视线判定 |
HuntTask |
狩猎取肉 |
EvadeTask |
撤离 / 逃跑 |
EatTask |
进食 |
SleepTask |
睡觉 |
LightAreaTask |
区域点火把 |
EmergencyShelterTask |
紧急筑墙避险 |
| 任务 | 说明 |
|---|---|
BuildTask |
按蓝图建造 |
PlaceStationsTask |
摆放工作站 |
ContainerTask |
容器存取 |
StockpileTask |
囤货整理 |
ResupplyTask |
补给 |
TradeTask |
村民交易 |
HoldTask |
待命 |
TaskManager · BotTickCoordinator · StuckWatcher · DangerWatcher · NavSafetyNet —— 详见 Safety Net。
AIBot · GitHub · MIT License · LLM plans · Tasks execute · Bob survives
新手上路
理解原理
参与开发
- Home
- Getting Started
- Commands
- Configuration
- Client Panel
- Architecture
- Goal Engine
- Task System
- Brain & Tools
- Safety Net
- Developer Guide
- FAQ
主仓库 · MIT