fix: 打通登录门禁死锁,失败信息区分未连接/登录被拒/未通过验证
继续修复部署时暴露的门禁设计问题: - 登录门禁死锁:/login、/register、简幻通的 /auth 本身就是登录流程的一部分, 原先门禁把它们一并拦下,形成「要先登录才能发登录指令」,账号永远卡在未验证状态。 新增 server.preLoginCommands 白名单(默认 login,l,register,reg,auth), 这些前缀在未验证时也放行,其余指令仍要求已完成验证。 - 离线时指令被静默丢弃却回报「已发送」:bot.chat() 在未连接时无处可发。 canSendCommand() 现在要求已连接并进入世界,失败信息区分 「未连接」「登录被服务器拒绝」「未通过登录验证」三种情况并给出对应建议。 - 前端配置表单支持 list 类型字段(逗号分隔的字符串数组)。 测试从 252 增至 263,全部通过。
这个提交包含在:
+8
@@ -66,6 +66,14 @@
|
||||
并新增 `server.authCommand` 模板供配置固定验证码的服务器自动过验证
|
||||
- **重连无退避**:连续被踢时每 10 秒硬撞一次服务器。现按指数退避拉长间隔
|
||||
(`server.reconnectMaxDelayMs`,默认上限 120 秒),成功进入世界后计数清零
|
||||
- **登录门禁死锁**:有些服务器的登录流程本身就是指令(`/login`、`/register`,
|
||||
简幻通体系还要先 `/auth`),原先的门禁把这些指令也一并拦下,导致
|
||||
「要先登录才能发登录指令」,账号永远卡在未验证状态。
|
||||
现新增 `server.preLoginCommands`(默认 `login,l,register,reg,auth`)白名单,
|
||||
这些前缀在未验证时也放行;其余指令仍要求已完成验证
|
||||
- **离线时指令被静默丢弃却回报「已发送」**:`bot.chat()` 在未连接时无处可发,
|
||||
原先调用方只会收到「已发送」。现在 `canSendCommand()` 要求已连接并进入世界,
|
||||
且失败信息会区分「未连接」「登录被拒」「未通过验证」三种情况并给出对应处理建议
|
||||
|
||||
### 已知限制
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户