注:这是 Rarity's Plugin Dev Tutorial(另称 Plugin Diary,中文名《插件开发日记》)的正式续作,请参见 skjsjhb/plugin-diary-again#1。
插件设计与编程 Plugin Diary Again 基于 Kotlin 的 Bukkit(Paper)插件开发指南
#1 序言
第二版序言:
光阴似箭,日月如梭。距离《插件开发日记》与大家见面以来,已经过去了四年的时光了。
在这段日子里,Minecraft 社区发生了很多变化,从 1.16 到 1.21,从 MCBBS 到红石中继站,从 Fandom 到 Minecraft Wiki……今时不同往日,因此前作《插件开发日记》中的许多内容,也是时候更新一下了。
那么,为什么我们以这样一种方式再次呈现本作呢?曾经于 MCBBS 活跃的读者应当听说过,《插件开发日记》的作者,ThatRarityEG,已经注销了帐户,并且亦宣布退出 Minecraft 社区。自那之后,《插件开发日记》由于缺少维护,便逐渐与最新的版本和技术脱节了。
不过呢,上面所说的这些,都只是为众人所了解的部分,但实际上故事到这里还没有结束。尽管 ThatRarityEG 离开了社区,关闭了 Discord 帐户,但其实在那之后她也并非音讯全无。而这部《插件设计与编程》,便是在过去的这段时间里诞生的想法。当然了,都说『人生有梦,各自精彩』,或许对 ThatRarityEG 而言,她的精力已经不再支持她亲笔再续前作,但我们没有理由认为这种限制也是各位读者面临的限制。
本书是《插件开发日记》的续作,因此为了保持与前作中内容的一致性,本书的各位笔者在教程中会尽可能模仿原书中的语气和设计思路。不过,模仿从来不是一种替代,因此本书若不如前作写得简明易懂(那基本上是肯定的),还希望各位读者海涵。从下一段落开始,本书将使用『我』作为代称,以便于各位读者最大程度地保留阅读前作时的感受。 第一版序言:
如果你听说过服务端插件,你的第一反应一定是:“好复杂啊!”特别是像 EssentialsX 这样的大型插件,功能多到一个配置文件都快装不下了。你可能会觉得:“反正我就用别人的插件就可以了,自己写…”于是就放弃了插件开发的梦想。
其实,你觉得插件开发遥不可及,并不是因为插件开发高深莫测,也不是因为插件开发技术超前,而是因为 没有人告诉你那其实是一件很简单的事情 。
那么,如果再给你一次机会,让你跟着我一起学习插件开发,你愿意吗?
本教程就是基于此创建的。
|
#2 本书的定位
作为《插件开发日记》的续作,本书同样继承了其中的思想:无需任何 Minecraft 开发经验,即可通过阅读本书开发 Bukkit 兼容的插件。在此基础上,我们希望解决原作中的一些问题,以帮助各位读者在零基础学习插件开发的同时,还能设计和制作有一定质量的插件。故此,本书没有使用《插件开发日记 2》或者《插件开发日记 Plus》这样的名称,而是重新起了《插件设计与编程》这个标题。我们希望强调,除了编写代码本身,设计、测试和维护插件同样是不可或缺的步骤。
#3 为什么选用 Kotlin
本书原本计划沿用前作的设计,使用 Java 作为开发语言。但是,在编写的过程中,我们注意到 Kotlin 相比 Java,无论是教学层面还是开发效率上都有额外的优势。并且,不同于模组应用(例如 Mixin),Kotlin 在很大程度上能适用于 Java 的大多数应用场景,插件开发也不是例外。出于这些考虑,本书最终放弃了使用 Java,而改用 Kotlin 进行教学。我们希望能通过本书澄清一些关于语言选择方面的误区,并且也希望进一步推进其它 JVM 系语言在 Minecraft 社区的的应用。
#4 为什么选用 Paper
在多年的功能更新和性能优化中,经过众多用户的筛选,Paper 及其分支已经成为事实上最流行的(纯插件)服务端。我们希望向各位读者展示在实际应用中使用的环境,而非原作中“与 Spigot 兼容”但事实上已经逐渐被淘汰的原版 Spigot 环境。
#5 本书的更新计划
本书会在开头所述的站点持续更新内容,计划将涵盖《插件开发日记》中的绝大多数内容,同时额外增加关于设计和编写更大规模插件项目的指南。尽管如此,我们恕无法对本书的更新频率和最终的内容提供任何担保。
#6 发行注记
苦力怕论坛的各位,大家好!
尽管本书(以及前作)并非在苦力怕首发,但我们仍然非常高兴能够与各位见面,并希望各位读者留下宝贵的意见。
本书沿用 GNU 自由文档许可证(版本 1.3) 作为授权所用的许可证。
#7 常问问题
Q:本书是《插件开发日记》的正式续作吗?
是的,我们最近在得到了原作者的 授权 后才将本书的内容公之于众。
Q:《插件开发日记》发生了什么?
简单来说,原作者已经离开了社区。个中缘由和一些其它问题,尽管我们确实了解一些,但出于对本人意愿的尊重,还希望各位读者不要过多过问。
Q:我不希望使用 Kotlin,Java 不好吗?
如果你已经掌握了 Java,那么学习使用 Kotlin 将会非常容易。不过,如果你觉得“我可以接受一切但唯独 Kotlin 不行!”,那也不是不能阅读本书。Kotlin 代码和 Java 是如此相似,如果你熟练掌握了 Java,也可以参照本书中的 Kotlin 代码设计开发插件。
Q:我没办法访问那个网站!
本书的所有内容都由 Cloudflare Pages 托管,我们相信这项服务的可靠性。关于阅读本书时出现的网络问题,特别是关于连接 Cloudflare Pages 和 GitHub 的问题,我们恕无法提供任何帮助。
本书的编写时间仓促,而且笔者的经验与技术相比原作者可称难以望其项背,若见疏漏,还希望各位读者海涵。
谨以此作,代表与不代表 ThatRarityEG,向各位读者表示由衷的感谢。
@Nana-Sakura |