layue13andClaude Opus 5.5 7f68e5682e feat: 运维日志策略、玩家与服务器事件日志、滚动日志文件
- 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>
2026-10-22 16:44:27 +08:00
2026-06-30 17:28:50 +08:00

MoonBridge

面向 Minecraft 1.7.10 Forge 的玩家会话代理:登录认证、协议转发、跨后端转服,以及供插件使用的玩家、服务器目录、富文本、命令补全、类型化事件和 Channel 消息服务。后端插件共享认证连接,通过 channel 与 proxy 或其他 backend 通信。空岛分配、实例唤醒和 Ban 数据存储由插件实现。

文档

快速开始

需要 JDK 25。发行包不包含 Minecraft 后端;要完成玩家登录,需要一个 Minecraft 1.7.10 后端,且 initialRouting.servers 中至少一个名称能解析到它(随附配置为 lobby → 127.0.0.1:25565)。

./gradlew check :proxy-core:installDist                # Windows: .\gradlew.bat check :proxy-core:installDist
cd proxy/core/build/install/moonbridge
java -jar moonbridge.jar --validate-config config/moonbridge.yml
java -jar moonbridge.jar                                 # 默认读取 config/moonbridge.yml

需要全部部署物(服务器包、后端插件、客户端 mod)时运行 ./gradlew release,说明见发行物与安装位置。LuckPerms 平台插件从 proxy/vendor/luckperms 子模块编译,默认不构建;需要时先 git submodule update --init --recursive,再加 -Pluckperms。

默认配置为 OFFLINE,仅监听 127.0.0.1:25577。公开部署使用 ONLINE_BUNGEE 并限制玩家直连后端;认证、监听、入口候选和后端地址见运行配置。

后端插件开发

服务器安装 moonbridge-backend JAR(插件名 MoonBridgeBackend)。业务插件对同一个构件 uk.potatolab.moonbridge:backend 使用 compileOnly / provided,并通过 BukkitMessagingService 获取共享消息服务;无需创建网络连接。源码当前的 0.1.0-SNAPSHOT 仅是本地开发构件版本;发布依赖应使用发布工作流提供的不可变版本。API 与完整示例见后端插件接入。

从 StrataProxy 升级见迁移说明;历史验收记录保留当时的名称与构件路径。

验证状态

当前可引用的验收记录及其覆盖范围见文档索引和验证方法。各记录只证明其注明的提交和环境,不代表生产容量。已知 Uranium 候选服登录停滞见记录及 Uranium #585。

生产权限存储统一使用 MariaDB 13.0.2;见 MariaDB 权限数据库。

S
Description
No description provided
Readme
2.8 MiB
0 Stars 1 Watchers 0 Forks
Languages
Java 95.1%
PowerShell 3.5%
JavaScript 0.7%
Python 0.4%
Kotlin 0.2%
Other 0.1%