跳到主要内容

??? 向过去告别

一些尚未解答的问题

光阴似箭,日月如梭。距离《插件开发日记》与大家见面以来,已经过去了四年的时光了。

在这段日子里,Minecraft 社区发生了很多变化,从 1.16 到 1.21,从 MCBBS 到红石中继站,从 Fandom 到 Minecraft Wiki……今时不同往日,因此前作《插件开发日记》中的许多内容,也是时候更新一下了。

那么,为什么我们以这样一种方式再次呈现本作呢?曾经于 MCBBS 活跃的读者应当听说过,《插件开发日记》的作者,ThatRarityEG,已经注销了帐户,并且亦宣布退出 Minecraft 社区。自那之后,《插件开发日记》由于缺少维护,便逐渐与最新的版本和技术脱节了。

不过呢,上面所说的这些,都只是为众人所了解的部分,但实际上故事到这里还没有结束。尽管 ThatRarityEG 离开了社区,关闭了 Discord 帐户,但其实在那之后她也并非音讯全无。而这部《插件设计与编程》,便是在过去的这段时间里诞生的想法。当然了,都说人生有梦,各自精彩,或许对 ThatRarityEG 而言,她的精力已经不再支持她亲笔再续前作,但我们没有理由认为这种限制也是各位读者面临的限制。

本书是《插件开发日记》的续作,因此为了保持与前作中内容的一致性,本书的各位笔者在教程中会尽可能模仿原书中的语气和设计思路。不过,模仿从来不是一种替代,因此本书若不如前作写得简明易懂(那基本上是肯定的),还希望各位读者海涵。从下一段落开始,本书将使用作为代称,以便于各位读者最大程度地保留阅读前作时的感受。

新版本新在何处?

在《插件开发日记》的基础上编写《插件设计与编程》,既是重写也是增补,《插件设计与编程》的变化主要包括:

  • 改用 Kotlin 作为开发语言,并在必要的时候介绍一些与 Java 相关的知识。

    或许,或许……

    在讨论这个举措的时候,编者之间产生过大量的分歧。Kotlin 在很多方面比 Java 更加便利是事实,但究竟是否值得为了这种便利性而去学习一门新语言,增大插件的体积,甚至引入与其它插件的兼容性问题,却值得权衡。由于本书保持了前作的零基础思路,因此笔者最终还是做出决定,使用 Kotlin 来完成教程的编写。

    相比于 Java,很多时候 Kotlin 写起来会方便很多。为了了解这是何等的方便,读者可以将本书中的例子与前作进行对比。

    哦对了,和前作一样,你并不需要事先学习 Kotlin,我会在本书中讲解这些内容。

  • 改善了各个例子的工程性。

    在本书中我们会以更加工程化的视角设计和开发各个实例,例如改用 Gradle 进行构建,引入测试和部署等。我们会尝试在不降低内容可读性的前提下引入这些概念,这些必要的复杂性其实是为了简化开发过程中的许多步骤。

  • 增补内容,添加和重制各个实例等。

许可证信息

为了不至于引起一些许可证相关的问题,本书中的内容,除另有声明外,仍沿用 GNU 自由文档许可证(版本 1.3) 进行发行。

不严谨地说,这意味着你可以:

  • 自由地阅读、复制、修改、再发布本书中的内容,不论出于何种目的

  • 在法律允许的范围内,只要遵循许可证的限制条件,任何人都不能否定你的这种权利

但唯须遵循以下条件:

  • 如果修改或再发布本书,则必须同样使用 GNU 自由文档许可证(版本 1.3)

  • 若要重新发布本书,必须使用不同的标题

(以上内容不是正式声明,不能代替许可证中的法律条款)

免责声明

本书的创作与 Mojang Studios 和 Microsoft Corporation 没有关联。

我们会尽力让书中的内容保持正确和相对完整,但我们对此不提供任何(明示或暗示的)担保。读者应自行甄别书中的内容,我们不为以任何方式使用本书造成的任何损失承担责任。

本书中有部分出于教学目的而虚构的人物和故事,与现实中的情形并无任何对应。