Citizens2 插件下载教程(CI 持续集成版)
本教程面向完全没接触过 Jenkins/CI 的新手,手把手教你从 Citizens 官方构建站下载对应你 Minecraft 服务器版本的插件。
一、先了解几个概念(很重要,别跳过)
| 概念 | 通俗解释 |
|---|---|
| Citizens | Minecraft 服务器上最老牌的 NPC(假人/非玩家角色)插件,能创建各种拟真 NPC |
| CI / Jenkins | 一种"自动编译服务器"。开发者每次提交代码,它就自动把代码编译成可用的.jar插件文件。你可以理解为"官方最新版自动发布站" |
| 构建(Build) | Jenkins 每次编译叫做一次"构建",每次都有一个编号,比如 #4211。编号越大越新 |
| 模块(Module) | Citizens 插件内部按 Minecraft 版本拆分了很多子模块,比如citizens-v1_21_R1专门适配 MC 1.21。每个模块只对应一个或几个 MC 版本 |
| didn’t run | 某次构建中这个模块没有重新编译(因为代码没改动,沿用上次编译的结果)。不代表不支持该版本,只是这次没重新编译而已 |
二、Citizens 支持的 Minecraft 版本对照表
Citizens 的每个版本模块名形如citizens-v1_21_R1,其中1_21_R1就是你要填入 URL 的版本号。
| Minecraft 版本 | URL 中填写的版本号 | 完整模块名 |
|---|---|---|
| 1.8.8 | 1_8_R3 | citizens-v1_8_R3 |
| 1.10 ~ 1.10.2 | 1_10_R1 | citizens-v1_10_R1 |
| 1.11 ~ 1.11.2 | 1_11_R1 | citizens-v1_11_R1 |
| 1.12 ~ 1.12.2 | 1_12_R1 | citizens-v1_12_R1 |
| 1.13.1 ~ 1.13.2 | 1_13_R2 | citizens-v1_13_R2 |
| 1.14 ~ 1.14.4 | 1_14_R1 | citizens-v1_14_R1 |
| 1.15 ~ 1.15.2 | 1_15_R1 | citizens-v1_15_R1 |
| 1.16.1 | 1_16_R1 | citizens-v1_16_R1 |
| 1.16.2 ~ 1.16.3 | 1_16_R2 | citizens-v1_16_R2 |
| 1.16.4 ~ 1.16.5 | 1_16_R3 | citizens-v1_16_R3 |
| 1.17 ~ 1.17.1 | 1_17_R1 | citizens-v1_17_R1 |
| 1.18 ~ 1.18.1 | 1_18_R1 | citizens-v1_18_R1 |
| 1.18.2 | 1_18_R2 | citizens-v1_18_R2 |
| 1.19 ~ 1.19.2 | 1_19_R1 | citizens-v1_19_R1 |
| 1.19.3 | 1_19_R2 | citizens-v1_19_R2 |
| 1.19.4 | 1_19_R3 | citizens-v1_19_R3 |
| 1.20 ~ 1.20.1 | 1_20_R1 | citizens-v1_20_R1 |
| 1.20.2 | 1_20_R2 | citizens-v1_20_R2 |
| 1.20.3 ~ 1.20.4 | 1_20_R3 | citizens-v1_20_R3 |
| 1.20.5 ~ 1.20.6 | 1_20_R4 | citizens-v1_20_R4 |
| 1.21 ~ 1.21.1 | 1_21_R1 | citizens-v1_21_R1 |
| 1.21.2 | 1_21_R2 | citizens-v1_21_R2 |
| 1.21.3 | 1_21_R3 | citizens-v1_21_R3 |
| 1.21.4 | 1_21_R4 | citizens-v1_21_R4 |
| 1.21.5 | 1_21_R5 | citizens-v1_21_R5 |
| 1.21.6 | 1_21_R6 | citizens-v1_21_R6 |
| 1.21.7 | 1_21_R7 | citizens-v1_21_R7 |
| 26.1 ~ 26.1.2 | 26_1_R1 | citizens-v26_1_R1 |
| 26.2 | 26_2_R1 | citizens-v26_2_R1 |
提示:Minecraft 从 1.21.x 之后启用了新的版本编号体系(
26.x格式),所以你会看到v26_1_R1、v26_2_R1这样的新模块名。如果不确定你的服务器版本:在服务器控制台输入
/version即可查看。
三、详细下载步骤(跟着做就行)
第一步:确认你的 Minecraft 服务器版本
在服务器控制台(或游戏内 OP 输入)执行:
/version屏幕会显示类似This server is running version 1.21.4的信息,记下版本号1.21.4。
然后对照上面的表格,找到对应的版本号:1_21_R4。
第二步:拼接模块页面 URL
URL 的固定格式是:
https://ci.citizensnpcs.co/job/Citizens2/net.citizensnpcs$citizens-v<版本号>把<版本号>替换为上一步查到的值。例如你的服务器是 1.21.4:
https://ci.citizensnpcs.co/job/Citizens2/net.citizensnpcs$citizens-v1_21_R4注意:URL 中的
$符号是网址的一部分,不是占位符,不要删掉。
第三步:打开模块页面,找到最新编译号
在浏览器中打开上面拼接好的 URL。你会看到一个 Jenkins 页面,页面内容大致如下:
citizens-v1_21_R4 Last Successful Artifacts: citizens-v1_21_R4-2.0.xx-SNAPSHOT.jar ← 这里会显示文件名和大小 Permalinks: Last build (#XXXX), xx days ago ← ★ 这个编号就是你要的构建号 Last stable build (#XXXX), xx days ago Last successful build (#XXXX), xx days ago ...你要找的关键信息:
- 页面上方的“Last Successful Artifacts”区域 —— 这里会显示最后一次成功编译产生的文件,以及对应的构建编号
- 页面下方的“Permalinks”区域 —— 这里列出了各种"最后一次"的构建链接
两种方式都能拿到构建号。推荐看 “Last successful build” 那一行,它后面的#XXXX就是你要的编号。
关于左侧边栏:Jenkins 页面左侧有一个导航栏,其中有“Build History”(构建历史)链接。点击它可以查看该模块所有历史构建的列表,你可以在列表里挑选最新的、状态为"成功"(蓝色球)的那一条。如果你不想翻列表,直接看 Permalinks 里的 “Last successful build” 编号即可,效果一样。
第四步:进入主构建页面
拿到构建号后(假设是4211),拼接以下 URL:
https://ci.citizensnpcs.co/job/Citizens2/<构建号>/替换后:
https://ci.citizensnpcs.co/job/Citizens2/4211/在浏览器中打开这个地址。你会看到:
Citizens2 #4211 Success ← 绿色"成功"标记 Build Artifacts: Citizens-2.0.43-b4211.jar ← ★ 这就是最终要下载的插件文件 4.16 MiB ← 文件大小约 4.16 MB Revision: a5c3de1a... Repository: https://github.com/CitizensDev/Citizens2.git Module Builds: ← 这里列出本次构建编译了哪些模块 citizens 3.1 sec citizens-main 1 min 35 sec citizens-v1_21_R7 23 sec ← 这些是有编译的 citizens-v26_1_R1 14 sec citizens-v26_2_R1 13 sec citizens-v1_19_R3 (didn't run) ← 没重新编译,但仍然包含在主 jar 中 ...第五步:下载插件文件
在第四步的页面中,找到“Build Artifacts”区域:
Citizens-2.0.43-b4211.jar 4.16 MiB直接点击文件名即可开始下载。
重要:你只需要下载这个
Citizens-2.0.xx-bXXXX.jar文件。这是完整的主插件包,内部已经包含了所有支持的 Minecraft 版本的适配代码。不要去下载单独的模块 jar(如citizens-v1_21_R4-xxx.jar),那些只是内部组件,单独无法使用。
第六步:安装到服务器
- 将下载的
.jar文件放入服务器的plugins文件夹中 - 重启服务器(不是
/reload,要完整重启) - 启动后,
plugins文件夹下会自动生成Citizens文件夹,说明安装成功 - 在游戏内输入
/citizens确认插件正常运行
四、关于 “didn’t run” 的详细说明
你在构建页面会看到很多模块标注(didn't run),比如:
citizens-v1_19_R3 (didn't run) citizens-v1_20_R4 (didn't run) citizens-v1_21_R1 (didn't run)这是什么意思?
Jenkins 使用增量编译机制。每次构建时,它只重新编译代码有改动的模块,没改动的模块直接沿用上次编译的结果。所以 “didn’t run”不是"不支持"或"编译失败",而是"这次没必要重新编译,直接用上次的成品"。
对你下载的影响:
- 下载的主 jar 文件(
Citizens-2.0.xx-bXXXX.jar)包含了所有已支持版本的适配代码,无论该模块在这次构建中是否 “ran” - 也就是说,即使你的版本模块标注了 “didn’t run”,主 jar 仍然支持你的版本
为什么要走模块页面找构建号?
- 如果你想确保下载的构建确实重新编译过你的版本(而不是沿用旧缓存),可以走模块页面确认该模块最后一次编译是在哪个构建号
- 不过对于绝大多数用户来说,直接下载最新成功构建的主 jar 就够了,不需要那么纠结
五、快速下载(懒人版)
如果你不想一步步来,只需要最新版本:
- 打开
https://ci.citizensnpcs.co/job/Citizens2/lastSuccessfulBuild/ - 找到“Build Artifacts”下的
Citizens-2.0.xx-bXXXX.jar - 点击下载
最新构建的主 jar 有100%概率识别不了一些MC版本
六、注意事项
- 始终使用最新版本:Citizens 官方强烈建议始终使用最新的 Minecraft 版本和最新的 Citizens 版本。旧版本不提供技术支持
- Java 版本要求:
- MC 1.17 ~ 1.20.4 → Java 17+
- MC 1.20.5 ~ 1.21.7 → Java 21+
- MC 26.1+ → 请使用 Spigot/Paper 推荐的 Java 版本
- 只下载主 jar:永远只下载
Citizens-2.0.xx-bXXXX.jar(约 4 MB 的那个),不要下载模块单独的 jar 文件 - Sentinel 和 Denizen:这两个 Citizens 的附属插件只支持最近 3-4 个大版本,不支持 1.8.8 等老版本
- MC 1.8.8 特殊说明:1.8.8 的支持方式比较特殊,详细参考 Citizens Wiki - Minecraft 1.8
七、完整流程速查表
| 步骤 | 操作 | 示例 |
|---|---|---|
| 1 | 服务器内输入/version确认版本 | 1.21.4 |
| 2 | 查对照表得到版本号 | 1_21_R4 |
| 3 | 拼接模块页面 URL 并打开 | https://ci.citizensnpcs.co/job/Citizens2/net.citizensnpcs$citizens-v1_21_R4 |
| 4 | 在页面找到最新成功构建号 | #4211 |
| 5 | 拼接主构建页面 URL 并打开 | https://ci.citizensnpcs.co/job/Citizens2/4211/ |
| 6 | 点击Citizens-2.0.xx-bXXXX.jar下载 | 下载完成 |
| 7 | 放入plugins文件夹,重启服务器 | 安装完成 |
参考链接
- Citizens CI 构建站:https://ci.citizensnpcs.co/job/Citizens2/
- Citizens GitHub 仓库:https://github.com/CitizensDev/Citizens2
- Citizens Wiki(版本兼容性):https://wiki.citizensnpcs.co/Versions
- SpigotMC 官方页面:https://www.spigotmc.org/resources/citizens.13811/