建立外掛

先決條件

  • JDK 7 或更高版本(推薦:JDK 8+)

新增 Bukkit 作為依賴

將 Bukkit API 新增到專案中的最簡單方法是直接從 Spigot Repository 下載 Bukkit.jar 並將其新增到專案的類路徑中。可以在 Bukkit 儲存庫中找到 Bukkit 的舊版本。

另一種是通過在 pom.xml 中新增以下行來將其新增為 Maven 依賴項:

<repositories>
    <repository>
        <id>spigot-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
</repositories>
<dependencies>
    <!--Bukkit API-->
    <dependency>
        <groupId>org.bukkit</groupId>
        <artifactId>bukkit</artifactId>
        <version>{VERSION}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

主類

外掛的主類是 Bukkit 載入外掛互動的入口點。它是一個擴充套件 JavaPlugin 的類,只有一個例項應該由你的外掛建立。按照慣例,最好為這個類提供與外掛相同的名稱。

以下是外掛 MyPlugin 的主要外掛類的示例:

package com.example.myplugin; //{$TopLevelDomain}.{$Domain}.{$PluginName};

import org.bukkit.plugin.java.JavaPlugin;

public final class MyPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        //Called when the plugin is enabled
        getLogger().info("onEnable has been invoked!");
    }

    @Override
    public void onDisable() {
        //Called when the plugin is disabled
        getLogger().info("onDisable has been invoked!");
    }

}

要從另一個類訪問你的外掛例項,你需要儲存由 Bukkit 建立的 MyPlugin 類的例項,以便可以從類外部訪問。

public class MyPlugin extends JavaPlugin {

    private static MyPlugin instance; //Effectively final variable containing your plugin's instance

    public MyPlugin(){
        if(MyPlugin.instance != null) { //Unnecessary check but ensures your plugin is only initialized once.
            throw new Error("Plugin already initialized!");
        }

        MyPlugin.instance = this; //A plugin's constructor should only be called once
    }

    public static MyPlugin getInstance(){ //Get's your plugin's instance
        return instance;
    }

    //your other code...
}

然後,要從另一個類訪問你的主類,只需使用 MyPlugin.getInstance()

public class MyOtherClass {

    public void doSomethingWithMainClass(){
        MyPlugin.getInstance().getLogger().info("We just used MyPlugin");
    }

}

建立一個 plugin.yml

plugin.yml 檔案位於最終 jar 檔案的根目錄中,併為 Bukkit 提供載入外掛的基本資訊。最簡單的 plugin.yml 看起來像這樣

name: {$PluginName}               //The name of the plugin
main: {$PackageName}.{$MainClass} //The fully qualified name of the main class.
version: {$Version}               //The plugin's version

例如,使用上面的 MyPlugin 類

name: MyPlugin
main: com.example.myplugin.MyPlugin
version: 1.0