1.9.3 的 tick() 里先取走 resumeConfig 再调 start(),而 start() 在 「已进入世界但还没完成登录」时会直接返回 false(isReady() 要求 loggedIn)。 本服掉线频繁、重连后常常短暂处于这个状态,于是第一次失败的尝试就把这次恢复 永久丢掉了,任务再也不会自己接上 —— 实测监控里任务长时间停在 「机器人尚未就绪(未连接 / 未进入世界)」就是这个原因。 现在:① 等 bm.isReady() 才尝试;② 只有 start() 真的返回 true 才清掉登记, 失败时保留并在下一 tick 继续试,日志打「自动恢复未成功(…),稍后重试」。 顺带:服务器上保存的 pathing.maxDropDown 被改成了 64(钳制上限), 而原版摔落伤害超过 3 格后每格 1 点、23 格必死 —— 实测机器人正是 「fell from a high place」摔死并重生回王城,白走了 100 多格。 已在服务器配置上改回 4(代码默认本来就是 3)。 测试 477 → 478。
40 行
1.0 KiB
JSON
40 行
1.0 KiB
JSON
{
|
|
"name": "autostore-bot",
|
|
"version": "1.10.1",
|
|
"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"
|
|
}
|
|
}
|