Spigot 开服(Apollo2)
用 Spigot 框架搭建 Java 版网络游戏,让玩家通过基岩版手机客户端进入 Java 版服务器游玩。客户端玩法仍用基岩版 ModSDK 和附加包 Json 做,与中国版组件开发一致(部分功能可能不生效)。
术语区分:Apollo2 ≠ 第三方 Spigot+Geyser
本篇讲的「Spigot 开服」是官方框架 Apollo2:走 MC Studio 部署,Master/Proxy 由官方集群托管,Geyser 内置于 proxy,只需在 Studio 里配置。它和官方 Apollo(Python)同属官方托管方案,区别只是 Java 服部分用 Spigot。
而本章总览里说的「Spigot + Geyser」作为第三方开服工具,指开发者自行部署整套 Geyser+BungeeCord+Spigot(不走 MC Studio 托管),与 Nukkit-MOT、Allay 同属第三方自建路线。二者别混淆——本篇内容属于 Apollo2(官方)。
框架结构
整体分两部分,用 BungeeMaster 插件把上下打通:
负载/协议转换部分
├── Master 服 # 同 Apollo,全局控制
├── Proxy 服 # 每个 proxy 内置一个 Geyser
└── Geyser # 基岩版协议 ⇄ Java 版协议转换
↕ (BungeeMaster 插件桥接)
Java 服部分(相当于 Apollo 的 lobby+game)
├── BC 服(BungeeCord) # 切服、转发;装 BungeeMaster、SpigotMaster
├── Spigot 服 # 实际游玩/世界数据;装 ViaVersion
└── DB / 其他第三方应用(可选)- Geyser:把基岩版协议转成 Java 版协议,是基岩版客户端能进 Java 服的关键。
- BungeeMaster:装在 BC 服,建立 BC 服 ↔ Master 服通信。Java 服对上层是"黑盒",靠它可扩展地连起来。
版本要求
| 组件 | 版本 | 说明 |
|---|---|---|
| Spigot | 1.12.2 | 其他版本不保证运行、官方不支持 |
| 基岩版客户端 | 中国版基岩版(约 1.18) | 不支持 forge,用 ModSDK 替代 |
| Java | java8 跑 Spigot | 机器同时提供 java8/java18 |
部署流程
前置:先完成入驻、申请开发机、连上开发机、访问白名单。
Java 服部分
- 用你自己的 Java 服框架部署(必须有 BC 服)
- Spigot 服
plugins/放 ViaVersion(兼容 1.18 客户端)ViaVersion 需特调版本
官网版 ViaVersion 转 1.20.5 头颅会过滤非法昵称信息,导致自定义方块和中文昵称头颅出错。用 MCS 内容库的 ViaVersion-4.10.2 或自行修改,别直接用官网版。
- Spigot 服
plugins/放 SpigotMaster;BC 服plugins/放 BungeeMaster - BC 服
plugins/BungeeMaster/config.yml配置:server_id:取值[12000, 14000),单次部署唯一master_port:[29000, 31000),BC 监听 Master 连接用(别和 query_port 冲突)
- BC 服
config.yml配query_port([29000,31000),监听 Geyser 连接),host冒号后端口与query_port保持一致
负载/协议转换部分(MC Studio)
- MC Studio【基岩版服务器 → 新建 → 空白 Spigot 服】→【更多 → 服务器配置】
- 代理服与协议服是同一进程:只调 proxy 数量(geyser 数=proxy 数)
- geyser 单服最大人数:建议 200~300,正式服务必设上限避免整服卡死
- geyser 单进程内存:0=默认(开发/审核 1G,正式 6G,6G 约承载 500 人)
- BC 服配置按 Java 服的 BC 数量填:BC 端口=
query_port,控制服端口=master_port - 部署 → 看日志 → 工具箱开 ModPC 开发包测试
多代理/多 BC
- 代理服配置填数量即部署多个(proxy 与 geyser 一对一),可跨机器
- 多 BC:各机器部署 BC,分别配唯一的
server_id/master_port/query_port;Studio【增加 BC 服】填各 BC 的 ip 和三端口;重新部署,Master 平均分配玩家
性能参考
一个 proxy 支撑约 300 玩家跑图+连续登录流畅运行,此时 geyser 建议 4G 内存上限,整进程最多占 5G 内存、5 核 CPU。
商城与自定义内容
Spigot 服的商城插件、自定义物品/方块/实体、Python 通信原理,都有专门 Demo(自定义物品/实体/方块、Python 通信、ServerForm、商城)。核心 API 见 SpigotMasterAPI / SpigotMasterEvent 文档。
下一条路线Nukkit-MOT 开服。回到基岩版网络游戏首页。
