# 编写一个插件
# 环境搭建
# 配置JDK
首先我们需要下载对应版本的JDK. JDK是区分操作系统位数的, 请下载你电脑应该使用的JDK.
本教程使用的是Java8, 编者使用的是64位windows操作系统, 因此下载了windows 64位版本的JDK8.
你可以在网上找到 JDK8 的安装包, 下面是官方下载地址(下载时需要登录账号并且国内速度慢):
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载完毕后, 右键用管理员模式打开(XP直接双击), 进行安装.
安装路径不能有中文(全英文), 安装过程中填写的两个安装地址, 都应该记住, 以免后续需要使用.
# 配置IDE(Eclipse)
IDE为我们提供了方便的Java开发工具等, 我们可以在IDE里轻松完成开发. 本教程后续将以一款比较出名的IDE——Eclipse做示范.
你也可以使用别的IDE, 例如IDEA.
打开下面的链接: http://www.eclipse.org/downloads/packages/
下载完毕后, 双击打开, 解压缩出来.
解压缩完毕后, 即可双击eclipse.exe
文件打开Eclipse.
在接下来的内容中, 将使用Eclipse作为IDE进行开发.
经常有人在这里遇到Eclipse打不开的问题.
请自行修改eclipse.ini
文件.
参考https://blog.csdn.net/gnail_oug/article/details/51925804
# 准备开服jar文件
Spigot、Paper等服务端本质上就是Bukkit的衍生服务端.
最开始诞生的是Bukkit服务端, 后续因为法律问题被迫中止, Bukkit服务端提供的API目前正在被SpigotMC维护. 目前大部分的服务端都基于Spigot开发.
由此而看, 基于BukkitAPI的插件并不是只有Bukkit才能用, 其衍生出的Spigot等诸多衍生服务端应该都能用.
我们开服使用的服务端jar文件, 写插件时同样也需要用到.
写插件之前我们需要下载一个开服所用的jar文件.
绝大多数情况下准备Spigot或者Paper, 亦或是其他服务端其实都是一样的.
您可以在这里下载到常用的服务端jar文件.
Spigot: https://getbukkit.org/download/spigot
Paper: https://yivesmirror.com/downloads/paper
特别注意
有一种远古的服务端叫做MCPC, 其与其后续衍生出的MCPC+和Cauldron服务端与Bukkit、Spigot等服务端架构并不一样.开发普通的插件时, 这些服务端的插件开发工作应该基于Spigot开发更合适. 如果插件涉及到MOD开发应当相提并论.
但要注意, 请时刻牢记不断调试. 有些你认为理所应当的事情会在这种服务端上出BUG.
本教程后续将不再为这类服务端做特殊说明.这段文字说明不针对CatServer等新生MOD+插件形式的服务端.
# 写最简单的插件
下面的内容如果有不明白的地方可以先照做, 在后面的内容中找到答案.
请你在下面的内容中重点注意熟悉Eclipse的使用方式.
打开Eclipse.
# 创建工程
第一步, 先为你的插件新建一个工程(Project).
第二步, 导入开服用的jar文件.
至此, 你已经创建完毕用以开发插件的工程.
# 创建主类和plugin.yml
一个插件必须要有的两样东西, 一个是主类, 一个是plugin.yml
文件.
让我们先创建一个主类.
注意: 其实主类名、类名并没有严格的规定. 具体的命名规则、这些步骤是什么意思, 会在稍后详细地告诉你.
再创建plugin.yml
文件.
可能你的Eclipse会弹出
Editor avaiable on the Marketplace
的提示, 选择第二项(Associate '*.yml' files
开头) 点OK
即可.
你的电脑上应该还要安装一款文本编辑器. 推荐Sublime Text
或Visual Studio Code
(本文使用).
创建完毕会自动打开plugin.yml
文件.
在plugin.yml
文件中输入这些内容:
name: HelloWorldPlugin
main: rinya.bukkit.helloworldplugin.HelloWorldPluginMain
version: 1
author: BakaRinya
注意:
yml
文件中冒号都应该是英文冒号, 后面必须有一个空格.plugin.yml
中忌讳出现中文, 应当保证尽可能全英文.- 上面从上到下依次是: 插件名、主类、版本号(可以写1.0.0之类的)、作者名.
保存. 保存之后双击src
中我们创建的HelloWorldPluginMain.java
文件, 在Eclipse中打开, 我们把其中内容改为这样:
package rinya.bukkit.helloworldplugin;
import org.bukkit.plugin.java.JavaPlugin;
public class HelloWorldPluginMain extends JavaPlugin {
@Override
public void onEnable() {
System.out.println("Hello World!");
}
}
应该看起来是这样:
至此, 你已经将该插件开发完毕. 接下来只需要导出即可.
# 导出插件
下面我们导出这个插件, 来看看效果.
之后你将会在你填写的位置找到插件的jar
文件. 你可以将你的插件放入服务端中, 像一个普通的插件一样安装它, 打开服务端.
注: 除非你想做插件之间的兼容测试, 一般测试插件用的服务端只安装我们正在开发的插件.
启动服务端后, 你会看到这些信息:
你会发现插件被加载后, 输出了Hello World!
. 这说明我们的插件运行正常, 十分完美.
局限于水平, 目前我们的插件仅此一项功能. 之后我们将不断完善它.
← 认识Java和面向对象 后记 →