Files
layue13andClaude Opus 5.5 afea023bce build: 代理发行包改为单个可运行的 moonbridge.jar
发行包去掉 bin/ 启动脚本和 lib/ 下的 42 个依赖 jar,改为与其他代理服务端一样
用 java -jar moonbridge.jar 启动:
- proxy-core 用 shadow 打出含全部依赖的 moonbridge.jar(合并 META-INF/services,
  清单写入 Main-Class、Multi-Release 与 Enable-Native-Access: ALL-UNNAMED)
- 泄漏检测默认关闭改由 ProxyMain 在加载 Netty 前设置,显式 -D 仍优先
- 移除不再使用的 application 约定插件
- 安装包检查、烟测与基准脚本改用发行包根目录作 classpath;文档同步

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:00:14 +08:00

3.5 KiB

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 权限数据库。