UPD1 (2022-2-4):完全重制了 2022-1-14 的教程。

UPD2 (2023-5-3):调整了部分文字的格式。


 

  许多人可能对于插件开发望而却步,认为它需要高深的编程知识。但是,事实并非完全如此,它和许许多多的技能一样,只要通过简单的动手尝试,就可以快速上手——当然,精通就是后话了。话不多说,让我们开始。

  首先介绍一下插件(plugin)。插件是一类可以扩展已有程序功能的组件,这里说“扩展”,意思是插件不仅仅可以改变已有程序的行为,还能实现新的功能。许多拥有插件功能的程序可以实现高度的自定义。放在游戏上来说,拥有插件功能的游戏可以收获更加广大且持久的用户群——无论什么时候,都有玩家热衷于开发和使用插件并乐此不疲。

  插件,一般来说必须依赖程序开发者提供的接口或者符合开发者制定的规范才能正常地工作。之所以提到这一点,是因为它与我们接下来要讲的服务端有很大关系。

  Minecraft 服务器是依赖服务端(server)工作的,而玩家使用的游戏程序是客户端(client),服务端负责生成世界,管理世界中的各种逻辑(生物生成与移动、时间推进等等),而玩家的客户端通过下载服务端里的世界数据等,并进行渲染,同时每隔一定周期上传自己的数据,从而得以在世界中同步游玩。

  Minecraft 原版服务端是不支持插件的,但是许多热心的开发者对其进行了二次开发,从而使其拥有了插件功能。现在比较常用的服务端有 bukkit 、 spigot 和比较新的 paper 和 sponge 。不同服务端的插件通常不能互通,因此在编写插件之前我们首先要确定目标服务端类型。由于 paper 服务端兼容 bukkit 和 spigot ,我自己的服务器也基于 paper,因此下面就以 paper 服务端为例进行讲解。

  工欲善其事,必先利其器。插件的开发需要工具,在这里我推荐 JetBrains 的 IntelliJ IDEA,可以从他们的官网上下载免费版本(即 Community 版),地址如下:https://www.jetbrains.com/idea/download/#section=windows。安装完毕之后,打开,进入 Plugins 界面,搜索并安装 Minecraft Development 插件(这里也用到了插件,它是用来扩展 IDEA 的功能的,使其开发 Minecraft 插件变得更加方便),你应该会看到如下窗口:

mc服务器 mysql 插件 mc服务器插件开发_开发者

 

如果你打开后是这样的,则从左上角的 File - Settings... 进入,同样可以找到 Plugins 界面。

mc服务器 mysql 插件 mc服务器插件开发_服务端_02

 

安装完毕后,打开 IDEA 的新建项目选项,此时已经可以看到 Minecraft 一栏了,我们勾选 Paper Plugin,然后点击 Next:

mc服务器 mysql 插件 mc服务器插件开发_mc服务器 mysql 插件_03

 

出现以下界面,并填写全部信息(GroupId 是组织名或者说开发者名, ArtifactId 是插件名, Version 是版本号),然后点击 Next。

mc服务器 mysql 插件 mc服务器插件开发_开发者_04

 

在这个界面我们首先要在右边的 Minecraft Version 中选择好 Minecraft 版本,注意不同 Minecraft 版本的插件通常也是无法互通的。然后窗口下方是一些选填信息,根据个人需要填写即可,完毕后点击 Next。

mc服务器 mysql 插件 mc服务器插件开发_mc服务器 mysql 插件_05

 

这个窗口主要是确定我们项目的位置,依据个人喜好填写,然后点击 Finish:

mc服务器 mysql 插件 mc服务器插件开发_mc服务器 mysql 插件_06

 

右下角会显示一个下载框,请等待其下载完成。这里下载的是对应 Minecraft 版本的插件开发库。

mc服务器 mysql 插件 mc服务器插件开发_服务端_07

 

然后点击窗口上方的 Run 来编译代码,测试环境是否正确配置:

mc服务器 mysql 插件 mc服务器插件开发_开发者_08

 

然后你就能找到编译好的插件文件了:

mc服务器 mysql 插件 mc服务器插件开发_服务端_09

 

至此,插件开发的基本环境已经配置完毕。

 注:如果有些界面不一样,可能是因为你在项目创建时右边选择的是 Gradle 而不是 Maven(从上往下第四张图片)。Gradle 一样可以使用,只是最后编译好的插件在 项目根目录 / build / libs 下。