环境准备:
首先确保已经配置好了JDK和Maven环境
根据模板建立项目:
进入一个准备好的目录,在当前目录下打开命令行并输入下面的命令:
mvn archetype:generate -DgroupId=me.cmiao.mcplugin -DartifactId=TutorialMcPlugin -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart
之后会在当前目录下以项目模板maven-archetype-quickstart建立项目,注意命令中的选项DgroupId和DartifactId确定了当前项目的坐标,而DarchetypeGroupId和DarchetypeArtifactId则指定了模板项目的坐标,命令执行过程中会从远程仓库下载依赖的模板。即使不指定这些选项也会在命令执行过程中提示用户交互式的输入。
编写代码:
删除\src\main\java\me\cmiao\mcplugin中的App.java,并新建一个源文件TutorialMcPlugin.java,在其中写入以下代码:
package me.cmiao.mcplugin;
import org.bukkit.plugin.java.JavaPlugin;
public class TutorialPlugin extends JavaPlugin{
@Override
public void onEnable() {
getLogger().info("onEnable is called!");
}
@Override
public void onDisable() {
getLogger().info("onDisable is called!");
}
}
TutorialPlugin继承了JavaPlugin,是该插件的主类,重写的两个方法onEnable和onDisable实现在插件被服务端加载和卸载时输出信息。
之后在\src\main\resources目录下添加plugin.yml文件,编写内容如下:
name: TutorialPlugin
version: 1.0
main: me.cmiao.mcplugin.TutorialPlugin
author: caoxm-me
由于我们不适用测试代码,所以删除\src\test\java下面的测试类。
修改pom.xml:
该文件在项目的根目录,在项目生成时被自动创建,这里修改的主要是dependencies元素,用来引用Spigot API。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.cmiao.mcplugin</groupId>
<artifactId>TutorialMcPlugin</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>TutorialMcPlugin</name>
<url>http://maven.apache.org</url>
<repositories>
<!-- This adds the Spigot Maven repository to the build -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!--This adds the Bukkit API artifact to the build -->
<!-- Do not include this in the pom.xml file if the Spigot API is already added -->
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
编译打包:
mvn compile
mvn package
成功后会在\target目录下发现输出的jar包,拖到服务端的plugins目录下后,reload服务端后会看到下面的输出信息: