创建插件

先决条件

  • 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