fix: 修正原点(00)两种原因的判断依据 —— 两种情况下脚下都是基岩

用户指出:死亡被卡到 00 时脚下**也是基岩**,所以原来用
lockBelow === 'bedrock' 区分「登录服」和「死亡卡住」是错的,
会把死亡卡住误判成登录服,于是不做自救、只让用户去输验证码。

改成以「服务器有没有要求输入验证码」为唯一可靠信号:
- 要求验证码 -> 判定为登录服,提示人工发验证码(不做无意义的左右移动)
- 没要求验证码 -> 判定为死亡卡住,自动左右移动触发服务器重新传送

自救本身在两种情况下都无害(在登录服里按左右键不会有后果),
所以即使判断错了也不会把事情弄得更糟。

另外:验证码提示往往比 spawn 晚到,所以 _handleAuthPrompt 里也补了一次判断 ——
若提示到达时机器人正好在原点附近,会明确点出「被反复传送刷屏」正是登录服造成的,
把这个因果关系讲清楚,避免用户只看到传送刷屏而不知原因。

同步修正 TODO.md 与 CHANGELOG 里那条错误结论,并标注「不要用基岩做判断依据」。

测试 363 -> 368,全部通过。
这个提交包含在:
lyizai
2026-09-28 20:32:49 +08:00
父节点 9ca80d2f6e
当前提交 0cd65cf9be
共修改 4 个文件,包含 129 行新增和 21 行删除
+5 -2
查看文件
@@ -18,8 +18,11 @@
- 每次回城都明确记日志,说明「会丢失当前位置与玩家手动摆好的位置」
- 因未启用而跳过时也会记一条说明,避免用户以为「怎么不回城了」
- **区分「被传送到原点」的两种原因**(以前在日志里长得一样,常被误判成机器人坏了):
- 脚下是 **bedrock** → 在登录服,必须人工输入验证码,给出明确提示
- 脚下不是基岩 → 死亡后被卡住,**自动左右移动触发服务器重新传送**(`_escapeFromOrigin()`)
- **服务器要求输入验证码** → 被切到登录服,必须人工发验证码,给出明确提示
- **服务器没要求验证码** → 死亡后被卡住,**自动左右移动触发服务器重新传送**(`_escapeFromOrigin()`)
- ⚠️ 这两种情况**脚下都是基岩**,所以不能用「脚下是不是基岩」区分;
唯一可靠信号是服务器有没有发验证码提示。自救在两种情况下都无害,
因此即使判断错了也不会让情况变糟
- **移动执行诊断 `moveDiag`**:暴露当前按下的控制键、速度、寻路器内部状态
(`isMoving` / `isMining` / `goal` / 剩余路径点数)。这是排查「走不动」的关键手段 ——
能一刀切开「寻路器没执行」与「执行了但服务端不认」。