排障与诊断
当遇到服务无法启动、模块未生效或连接异常时,可通过下方的交互式排障向导逐步排查;完整排查清单与高频问题汇总亦收录在下方,便于快速检索与定位。
自检(monorepo)
- 在仓根运行平台集成自检,验证核心包与依赖一致性:
pnpm run verify
常见问题排查清单
1. 端口冲突与网络异常 (Port Conflicts)
2. 数据库服务(db-server)异常
3. BDS 启动与行为包装载
- 查看装载日志:检查控制台输出与
<SFMC_ROOT>/.sfmc/logs/下的各服务独立日志。 - 手动编译打包验证:在 sfmc 终端中执行
mod build,确认 esbuild 产物生成无 TypeScript 语法报错。 - 确认附加包冲突:检查
worlds/<level>/behavior_packs/是否存在同名或旧版行为包残留(详见 附加包管理)。
4. 模块已启用(Enabled)但在游戏内无响应
- 代码与配置生效机制:
- 若修改了
sapi/src/中的 TypeScript 代码:执行sfmc> mod reload即可热重载生效。 - 若修改了
configs/*.json或manifest.json:必须重启 BDS 才能生效。
- 若修改了
- 锁文件状态:确认
<SFMC_ROOT>/modules/module-lock.json中该模块的enabled字段为true。 - 生命周期时序:若模块在初始化阶段操作了实体或维度数据失败,检查
ModuleRegistry.register是否应设置afterWorldLoad: true。 - 前置依赖模块:检查
manifest.json中的dependencies是否均已安装且处于enabled状态。
5. QQ 机器人与消息桥接异常
- 凭证核对:检查
configs/qq_config.json中的official.app_id与official.app_secret是否正确填写。 - IP 白名单配置:登录 QQ 开放平台开发者后台,确认公网 IP 已添加到调用白名单中。
- 事件订阅:确认在开放平台已开启
GROUP_AT_MESSAGE_CREATE(群聊 @ 消息事件)。 - 群标识回填:在群内首次 @ 机器人后,从控制台日志复制生成的
official.group_openid并填回配置文件,随后重启服务。
6. 模块热重载与 Watch 联调排查
7. 提交 Issue 与求助
如排查后仍未解决问题,欢迎前往 GitHub Issues 提交反馈,并请附上:
- 完整终端报错日志(或
.sfmc/logs/归档) pnpm run verify输出结果node -v与操作系统版本信息