環境準備:
首先確保已經配置好了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服務端後會看到下面的輸出信息: