mirror of
https://github.com/layue13/MoonBridge.git
synced 2026-10-25 18:46:18 +00:00
- core.admin.AdminView:在线玩家(地址、TCP/WebSocket、所在服务器、在线时长)、服务器 (地址、人数、来源)与状态(版本、运行时长、传输层、监听地址、堆内存、最近 10 分钟活动) 的只读快照;不从控制台线程直接读取会话状态 - Session 在发布玩家时记录连接详情;ProxySessionListener.onlinePlayers() - ConnectionLog 用 RecentCounter(10 个一分钟桶)统计加入、离开、拒绝、转服与失败; 连接数上限与插件池拒绝计入过载 - app.console:Console 在终端中使用 JLine(提示符固定在底部、历史、Tab 补全),否则按行读取 标准输入;ConsoleLogAppender 让日志打印在提示符上方并为警告/错误着色 - 内置命令 help/list/servers/player/status/send/kick/loglevel/stop,先于插件控制台命令; 同名插件命令在启动时警告;send/kick/loglevel/stop 写入 moonbridge.admin - 依赖:JLine 3.30.17(reader、terminal、FFM 提供者),logback 改为编译期依赖 - 文档:operations.md 控制台命令、logging.md、CLAUDE.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
设计文档
文档描述当前实现;源码和自动化测试是行为核对依据。各验收记录注明了自己的日期、提交和环境,详见验证方法。
从这里开始
- 要运行 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 转发没有通用事件派发。