线上实测确认手动执行器(1.7.0 备选方案)不能解决「走不动」:前 20 秒走 13 格后 即卡在「执行中断(stuck)→重规划→缩短段长→跳过目标→重新规划同一目标」的死循环。 只靠 packetStats.outboundTypes 的计数看不出「发出去的内容对不对」,所以补一个 能录原始出站序列、并能在「能走」与「走不动」两种状态下 diff 的诊断能力。 新增 src/core/packetCapture.js: - 只在录制期间挂钩 client.write,其余时间零开销(该钩子每个出站包都要过一遍); - 录到的内容做降深 + 截断的 JSON 化处理,向量对象只留坐标 (move_minecart 这类包能带上万个浮点数,不处理会把缓冲区撑爆); - 只放内存、有上限(默认 4000 包),不写盘。 接口(控制台): - POST /api/bots/:id/capture/start(可带 seconds 到点自动停止) - POST /api/bots/:id/capture/stop - GET /api/bots/:id/capture(支持 ?types= 与 ?limit=) 顺带修掉两个先前就存在的问题: - scripts/check-protocol.js 其实一直跑不通:minecraft-data 的 types.packet[1][1].type[1].fields[包名] 给的是类型名字符串, 要再去 types[名字] 取 ['container', [字段...]] 才能展开,原实现直接 .map() 必然抛错; 另有读 node_modules 少一层 '..' 的路径问题。 - 两条租约用例(expansionController / targetLease)的时序余量只有 15ms, 全量并行跑测试时偶发失败;改为 TTL 400ms 配 280ms 睡眠,各留 120ms 余量, 断言内容不变。 测试:436 → 451 个用例,连续 16 轮全量运行全绿。
40 行
1.0 KiB
JSON
40 行
1.0 KiB
JSON
{
|
|
"name": "autostore-bot",
|
|
"version": "1.8.0",
|
|
"description": "AutoStore Bot —— Minecraft 自动扩地机器人(mineflayer 重写版,多机器人挂机,Web 控制台,开拓日志,大地图,Grim 反作弊适配)",
|
|
"main": "src/index.js",
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js",
|
|
"test": "node --test",
|
|
"check": "node scripts/check-syntax.js && node scripts/check-web-ids.js",
|
|
"deploy": "node scripts/deploy.js",
|
|
"ssh": "node scripts/ssh-helper.js"
|
|
},
|
|
"keywords": [
|
|
"minecraft",
|
|
"mineflayer",
|
|
"autostore",
|
|
"territory"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"private": true,
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
},
|
|
"dependencies": {
|
|
"chalk": "^4.1.2",
|
|
"dotenv": "^16.4.7",
|
|
"express": "^4.21.2",
|
|
"mineflayer": "^4.39.0",
|
|
"mineflayer-pathfinder": "^2.4.5",
|
|
"vec3": "^0.1.10",
|
|
"ws": "^8.18.0"
|
|
},
|
|
"devDependencies": {
|
|
"minecraft-data": "^3.102.3",
|
|
"ssh2": "^1.17.0"
|
|
}
|
|
}
|