开服之前:如何选择好插件?
抛开复杂且兼容性差的模组服与混合端不谈,许多新手服主要接触的东西就是插件。
本章节不会着重讲述插件的发展历史或其定义,只会以简单的描述一笔带过。
那么,什么是插件?
广义上的插件是一种以围绕 Bukkit API、Spigot API 或 Paper API 等 Bukkit 系分支服务端核心提供的 API 制作的功能性组件,其在极早期也被称为(服务端意义上的)模组。
总而言之,插件是为服务器玩法添光增色不可或缺的一部分。
插件下载/购买指导
面对浩如烟海的插件市场,许多新手服主在选择时往往遵循有则用,不怕多的原则。实际上,插件市场鱼龙混杂,质量参差不齐,如何选择效率、实用且长久维护的插件便是服主最需解决的问题。
1. 慎重选择基础插件
很多(尤其是经验颇丰的)服主尤其喜爱诸如 CMI 或 Essentials(X) 这类综合基础插件。实际上,CMI 已经在很长一段时间内因其功能臃肿为人诟病,而 Essentials(X) 也面临“掉队”风险。简而言之,插件功能分散化趋势愈加明显,在以前的蓝海时期颇受青睐的多合一到现在就成了弊端。
如果你执意要使用,不妨先问问自己:有什么功能非得是我用这些插件不可的?对于追求性能的服主,即便他们使用多合一类插件是为了节省性能,但笔者看来,散件的效率并不一定比多合一低。
以 CMI 举例,即使作者声称其功能模块化可自由开关,仍有不少聊天栏被 CMI 接管导致冲突的问题报告,这侧面反映出“自由开关”的代价是配置文件的复杂程度大幅度上涨。其次,可能有很多用户并不清楚,CMI 乃至 Zrips 本人所谓的插件文档有大量内容都是其他用户自行撰写,而非本人。这就导致这类插件在使用难度上仍会因为其用户理解而出现偏差,换言之插件的文档并不出自原作者之手,可信程度并不见得比那些散件的文档(即便是 AI 生成)来得高。最重要的是,这些插件里被设置为关闭的功能有时候不会彻底消失在服务器里,反而很有可能静默在后台占用效率,这对那些追求性能的服主来说无疑是致命的。除此之外,Zrips 在他编写的 Residence 中还曾出现过一行代码让低版本兼容性报废的光辉事迹。
最后,如果你无法找到切实的理由摆脱基础插件,那么你也没有必要寻找散件代替之。
2. 慎重选择付费插件
经常有服主自称“在开服前购买了数量众多的定制插件”,且为此沾沾自喜。对此,笔者建议萌新服主不要模仿。
原因非常简单,购买付费插件的沉没成本难以控制。除此之外,一些别有用心的作者为自己的插件设置了后门,或者简单地利用营销策略让你连续购买他的资源。在考虑服主预算并不充裕(即便充裕也要谨慎使用,花在刀刃上)的情况下,国内外的付费插件都需要谨慎购买。
另外,还有一个非常重要的原因:付费支持。国外时有付费购买了资源的用户留言称其并没有得到作者或其团队的技术支持,而在国内,则更多地表现为作者写完插件后就圈钱跑路,留下了一些残次品和半死不活的用户群。
虽然为作者付钱是支持作者的一种方式,但在国内插件市场(尤其是低版本这种极易被定制类插件占领的下沉市场),除非作者口碑极佳,否则还是需要谨慎考虑是否为使用他的作品付钱。这就可以引出我们下一部分的叙述。
3. 尽可能选择来源/作者可信的插件
接上文,有名的作者(如小默米、PQguanfang/Manyou Team、嘿鹰、石头等)的作品因其知名度高、购买者众多、评价尚可,是值得考虑购入的。而那些价格便宜,但身份模糊不清甚至可疑的插件出售者则需要谨慎选择。其中一种情况就是,在某个技术交流群里说完一句话后就私聊推销插件的不知名作者。
对于国内环境,鉴别作者优劣的其中一种方式就是查看他的作品是否曾发布在 BulitByBit、SpigotMC、Modrinth 这类网站上,这里可以很大程度上参考其他用户的使用体验,并帮助你决定是否购买插件。
除此之外,插件的下载来源也至关重要。有些泄露资源站获取的 .jar 文件很可能存在包括但不限于 Updater 蠕虫的病毒,存在破坏服务器或为幕后黑手偷窃资源提供便利的隐患。因此,尽可能从 Modrinth、SpigotMC、Github 等可信的分发来源下载插件,避免使用非正常途径获取的插件。如果实在有必要,请使用 MCGuard 等程序对插件进行安全性检查。目前市面上针对一般病毒的扫描程序/网站(火绒、360、VirusTotal、微步云沙箱等)均无法有效检测 .jar 程序内的有害代码。
插件选择指导
讲完了如何下载插件,我们稍稍往前倒一点,讲讲如何选择插件。
1. 契合服务器主题/尊重服务器结构
插件不是一股脑的看到就装,而是有求必应式的填补。与模组服一样,安装的插件在开始制作内容后就难以更改,且更换的工作量随着配置的深入而增加。从这方面来说,模组服反而能更需要谨慎选择,不过大部分服主并没有意识到这一点。
回到正题,选择的插件尽可能契合服务器主题,比如生电服安装生电优化插件,RPG 服安装禁止原版物品合成插件。这往往是显而易见的。对于那些功能通用的插件,例如菜单插件,我们推荐只安装一类这样的插件。
2. 非必要不添加/不要重复安装
接上一条,实现某个功能的插件只需要安装一个。多个插件的存在不仅会拖慢服务器,更有可能会导致翻找配置的时间增加,提高服务器的复杂程度,这对长远来看的服务器维护显然没有更多好处。
比如,同样是保护主城,我们推荐用 WorldGuard 而非 Residence 实现。后者更适合完全下放给玩家使用,便于管理数据。前者适合保护服务器主要区域,且有远比 Residence 更多且更灵活的设置选项。不过需要注意的是,这里的功能是“玩家领地”和“服务器保护”,不可将其混为一谈,因此当然算不上重复安装,更不可能不是必要情况。
3. 避免不优雅的实现
接上一条,利用更强大灵活的 WorldGuard 代替 Residence 保护服务器主要区域既可以分离数据,又可以方便管理。与之类似,非常不推荐模组服使用 ItemsAdder 等诸如此类的插件实现自定义物品。原因非常简单明了:这类插件模仿的是模组,为什么要在已经允许模组安装的情况下再装这样的插件?基于此,笔者更加建议服主通过简单易用的 MCreator(程序)或 KubeJS、ContentTweaker 等模组实现自定义物品的添加。至于界面的修改,则更推荐龙核、ArcartX 这类用到了模组内容的插件实现。
除此之外,绝对不要在服务器里插件已经能做到的情况下再安装新插件,除非这涉及到多个插件的耦合。例如绑定物品命令打开菜单。诸如 DeluxeMenus/TrMenu 等现代化的菜单插件已经支持了通过绑定物品或自定义命令打开菜单,那么也就不推荐用服务器已有的命令绑定插件甚至是再安装一个来实现功能。
另见
- 关于插件内核汉化,请转到 Recaf 内核汉化。
- 关于获取插件译文,可参考本网站内的“维基”部分(主页),或前往 Github 仓库浏览。
- 关于如何自行从源代码构建 .jar 文件,请转到用 Maven 或 Gradle 构建。
SnowCutieOwO