MC 服务端介绍
想开服会发现服务端五花八门。MC 是社区驱动的游戏,各种服务端由不同团队开发维护。这一篇按时间线理清它们的来历和关系。
官服(Vanilla)
最早只有 Java 版。Mojang 每个版本发布时都会同时放出对应的 ServerJar,用它开的服务器叫官服。
官服启动后会在根目录生成 server.properties 配置文件。官服最大的问题是没有插件系统——想禁止玩家扔钻石?做不到(除非用命令方块,但能力有限)。
Bukkit
社区迫切需要"插件系统",Bukkit 因此出现。
Bukkit 启动后会额外生成 bukkit.yml 和 plugins/ 文件夹。它会用 Java 的 ClassLoader 把 plugins/ 里的 jar 加载进服务端,开发者用 Bukkit 官方 API 写插件扩展玩法。
插件系统的本质
Bukkit 的核心贡献就是插件系统:一套标准 API + 一个加载机制。后面的 Spigot、Paper 都建立在这套 API 之上,你写的插件理论上能跨这些服务端运行。
Spigot
SpigotMC 社区发布的 Spigot 服务端,最初是对 Bukkit 的优化和扩展。
后来 Bukkit 因直接使用 Mojang 代码被起诉、停止开发。但 Bukkit 生态热度极高、插件数量庞大,SpigotMC 社区逐渐接管了 Bukkit 的维护工作——也就是说今天说的"Bukkit API"实际由 SpigotMC 维护。
Spigot 的 jar 哪来的
SpigotMC 官网不直接提供成品 jar,网上流传的多是用 BuildTools 编译的成品。要合规获取需自己跑 BuildTools 编译。
其他服务端
基于 Spigot 又衍生出许多服务端:
- Paper:Spigot 的社区优化版,性能更强。跑 Paper 会发现目录下有
bukkit.yml、spigot.yml、paper.yml三个配置——能看出它的"家族史" - CatServer / Mohist:Spigot + Forge 混合核心,既能装插件又能装 Mod(早期有 MCPC+/Cauldron,停在 1.7.10 不再更新)
- Arclight / Uranium:同属混合核心
Sponge 不在本教程范围
Sponge 用的是完全不同的 API 体系,Bukkit 插件跑不了。本教程只覆盖 Bukkit/Spigot/Paper 系。
API 版本差异
Bukkit API 因发展历程变动较多,本教程尽量提及关键差异。变动虽多但不剧烈,思路一致——只要清楚 API,在各版本都能找到对应用法。
小结
| 服务端 | 本质 | 插件 |
|---|---|---|
| Vanilla | Mojang 官方 | ❌ 无 |
| Bukkit | 插件系统鼻祖 | ✅(已停更,API 由 SpigotMC 接管) |
| Spigot | Bukkit 优化继承者 | ✅ |
| Paper | Spigot 优化版 | ✅ |
| CatServer/Mohist | Spigot+Forge 混合 | ✅(兼容 Mod) |
