本小节目录:
参与编写者:MagicLu550
后期修订:愉悦师柑也
本版本可能为非正式版本,但不影响阅读,请您悉知。
搭建环境是我们学习Nukkit的第一步。虽然安装IDE不是必要的一步,但这是我们能以便捷的方式进行开发的第一步。
-
首先上 IDEA官网 下载我们所需要的版本,我们一般选择免费的Community版本,因为它已经符合我们的需求了。作者这里使用的是Ultimate版本。
3.输入 groupId 和 artifactId (这些是需要你来写的,支持自定义),并且创建项目后,我们会进入到下图的界面。图中的 artifactId 为 MyFirstPlugin.
关于groupId为何物,Snake1999做出了非常详细的解释(转):
这里有必要做一些详细说明。
GroupId 经常也是Java项目的包名。Java项目的包命名规则有这样的约定:
“以网站倒着写.项目名字” 或者 “网站倒着写.项目名字.模块名字” 为结构。
必须以小写字母开头,
必须与别的Java包相区别。
Nukkit内核的所有包都是遵循这个规定的,
例如Nukkit的网站是nukkit.cn,所以里面包含所有方块(block)的包的包名应该是:
cn.nukkit.block
各位在编写Nukkit插件的时候,需要编写一个独特的、和他人的项目不一样的包名,以便与他人开发的插件相区别。
比如译者的网站是snake1999.com,如果译者编写了一个叫ExamplePlugin的Nukkit插件,就可以放在包名为com.snake1999.exampleplugin的包内。以下包名的结构都是可以使用的:
com.snake1999.exampleplugin
net.mcbbs.tutorialplugin
ru.nukkit.nkexample
me.fromgate.firstplugin
而以下的包名都是不被推荐使用的:
main.java.plugin
TestPlugin
另外,开发Nukkit插件,我们规定不能把插件的任何部分存放在cn.nukkit包下,否则后果自负。
关于主类的名称,只要能和别人的主类区分开就可以了,但是不推荐使用MainClass之类的名称。
- 在pom.xml中加入以下标签可以导入
<repositories>
<repository>
<id>opencollab-repo-release</id>
<url>https://repo.opencollab.dev/maven-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>opencollab-repo-snapshot</id>
<url>https://repo.opencollab.dev/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>cn.nukkit</groupId>
<artifactId>nukkit</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
- 接下来在程序上可以进行开发了
编译,打包 → 部署 → 运行加载 → 调试
- 编译打包很简单。我们使用IDE可以轻松实现Maven打包。
PS: 在打包之前,建议在pom.xml里加上以下代码,可以解决IDEA编译器版本无效等一系列问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
本项目所采用的JDK版本为JDK8。如果您使用的不是JDK8,则需要修改一些地方。
JDK9
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.9</source>
<target>1.9</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
JDK10
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.10</source>
<target>1.10</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
以此类推....如果行不通,可以尝试可以删掉前面的“1.”
比如,JDK11就是
<source>11</source>
<target>11</target>
如图所示,出现 "BUILD SUCCESS" ,编译就大功告成了。
- 部署
之后把打包好的合法插件丢入plugins文件里就完美运行了,这里将不做图示 这就是插件部署的过程。
- 运行加载
如果出现了加载$(您的插件名字)成功之类的字样,说明您的插件成功了。
- 之后进入游戏测试您的插件是否符合您的需求,根据您插件出现的各种问题进行再次调试、修改、打包等。
鉴于很多人的需要(因为NukkitX的Maven服务器太卡了),这里我写一下本地导入jar包的方法。
- 导入包
其实要简单很多,您需要上 NukkitX的Jenkins 下载一个 Nukkit 的jar包,
然后将您的jar包放到您项目根目录的libs文件夹下(这里您需要自己创建)
我们再把它导入我们的项目里,
这里选择 libraries:
选择Java,这样可以直接导入本地jar包。
之后我们选择下载好的Nukkit的jar包,
导入完毕,
- 构建jar包
再然后,我们在libs下创建一个plugins文件夹(先前的点击下面的OK保存一下),
打开我们的这个窗口,找到artifacts,之后点击 '+' ,找到 JAR,
创建之后,是这样子(图中已经说明了compile output)。
然后如图中所示,把 plugin.yml 也添加到我们的jar包里
之后我们再修改打包目标的路径,将路径指向我们jar包的根目录
记得设置上这个:
保存。
- 设置工作文件夹
最后一步,设置我们的运行环境。如图所示,点击Add Configuration
接着,我们分别设置jar包和工作文件夹
最后优雅的点击保存。
- 运行
我们在这儿先写个主类
再点击 Build,打包插件
之后我们把插件放进服务器中跑一遍,
成功√
感谢 Testfor , Itname 等人的帮助,我们找到了 IDEA 的汉化包,点击这里下载
上面的汉化包适用于2019.3,
截至2021年10月28日,IDEA Community 已经更新至2021.2.3,
且官方已支持使用插件进行页面汉化。
以 愉悦师柑也 的 CLion 2021.2.2 为例,您可以直接前往 Settings - Plugins 搜素 Chinese 并安装。
NTR了,但没有完全NTR