mirror of
https://github.com/layue13/MoonBridge.git
synced 2026-10-25 18:46:18 +00:00
- docs/logging.md 规定各级别写什么、永远不写什么,以及新增日志的做法 - core.log.ConnectionLog 统一写玩家(加入、离开、转服、转服失败、未能加入)和服务器 (注册、地址变更、注销、不可达/恢复)事件,logger 为 moonbridge.players / moonbridge.servers - LogText 清理对端与插件文本(控制字符、双向文字控制字符、长度上限),防止伪造日志行 - logging.playerAddresses 开关:false 时玩家地址写成 [hidden] - Session 记录结束原因(先记录者为准),在 closePair 中写离开或未能加入的原因 - 合并的 WARN(ThrottledWarning):连接数上限、插件命令/补全/事件/初次选服过载 - 控制通道:租约过期、注册被拒(按地址和原因去重);插件启用/停用;启动与关闭摘要 - logback:控制台 + logs/latest.log,按天压缩滚动保留 14 天;测试只写控制台 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
设计文档
文档描述当前实现;源码和自动化测试是行为核对依据。各验收记录注明了自己的日期、提交和环境,详见验证方法。
从这里开始
- 要运行 Proxy:先看运行配置,再按部署需求修改认证方式、入口候选和后端地址。
- 要开发插件:先看插件开发;后端 Bukkit 插件另看后端 Channel 接入。
- 要理解初次登录为什么拒绝或如何重试:看初次登录路由及其专项验收记录。
- 要核对证据覆盖面:看验证方法,并按各记录注明的日期、提交、环境和探针类型判断。
| 文档 | 内容 |
|---|---|
| 架构与边界 | 模块职责、会话状态、线程模型、转服、目录所有权 |
| 消息与命令补全 | 富文本、模板、异步参数补全及协议边界 |
| 插件开发 | 生命周期、玩家/服务器视图、选服、命令与统一类型化事件 API |
| 转服协调 | 登录前决策、可选源服释放、异步确认、期限与失败边界 |
| 玩家权限与 LuckPerms | 通用权限接口、提供者生命周期、命令鉴权和原生 LuckPerms 平台插件 |
| 初次登录路由 | 显式入口、插件策略、超时、重试安全边界与验收契约 |
| 玩家操作与部署完善设计 | 消息、主动断开、服务器列表配置与验收边界 |
| 运行配置 | 认证、接入限制、超时、启动和部署边界 |
| 日志策略 | 各级别写什么、日志文件位置、玩家 IP 开关和永远不写的内容 |
| WebSocket 接入 | 与 TCP 并存的 WebSocket 玩家监听、CDN 部署、真实 IP 与客户端 mod |
| 后端 Channel 消息服务 | 共享宿主、跨后端路由、消息身份与交付语义 |
| Channel 消息设计契约 | 从参与者、寻址、响应与失败语义推导 API 和验收条件 |
| 验证方法 | 自动化测试、烟测、真实客户端与合成性能测量 |
| 发行物与安装位置 | gradlew release 产出的服务器包、后端插件、客户端 mod 各装在哪里 |
| 发布与依赖版本 | 本地 SNAPSHOT、CI 不可变版本、Maven 构件和发行包的区别 |
当前可引用的验证记录
- 初次路由专项验收:自动化路由覆盖与真实 Java 8 Uranium 后端协议探针;不是完整 Prism 模组包视觉验收。
- MoonBridge 后端 API 验收:隔离 Uranium 服务端中的 Bukkit 宿主和 API 功能验收;无玩家。
- 2026-09-26 Prism 历史记录:真实客户端及配对测量,仅适用于该记录描述的代码版本和环境。
设计约束:核心管理连接和协议;插件负责玩法与访问策略。ServerView 是后端目录快照,发现方式是目录的提供者,不引入核心负载观测。准入与会话通知使用同一事件类型、监听器和注册表;不同事件在派发策略上处理结果。常规 PLAY 转发没有通用事件派发。