Nukkit非公式日本語wiki - プラグインの作り方
ここでは、Nukkitプラグインの作り方をなるべく簡単に書きます。

NukkitはJavaで書かれているため、必然的にプラグインの開発もJavaで行うことになります。
PocketMine-MPのプラグインをそのままコピーしても動きません。

ですが、安心してください。APIの構造や、関数など、ほとんどPocketMine-MPと互換性があるため、PMMPのプラグインを作ったことがある人なら、ちょっとJavaを覚えればすぐに作れるようになるはずです。(個人差アリ)

※ PHPではuseでしたがJavaではimportを使用します

準備

Eclipseで説明します。
ここでは、デモとしてゲーム参加時に文字列を送信するプラグインを作ります。
まずはここからEclipse 4.3 keplerのご自分の環境に合ったものをインストールしてください。

1.Eclipseを開き、ファイル→新規→プロジェクト


2.Maven→Mavenプロジェクト


3.シンプルなプロジェクトを作成(S)(アーキタイプ選択のスキップ)にチェックして次へ

4.このように入力して次へ


5.左のツリーから、ExamplePlugin→src/main/javaの上で右クリック→新規→パッケージ(写真ではプロジェクトになっています。すみません。)


6.画像のように入力して完了


7.ExamplePlugin→pom.xml→下のタブのpom.xmlを開いて、中身を全て消す


8.そこに下記のコードを入力(コピペでかまいません)
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>example.plugin</groupId>
  <artifactId>ExamplePlugin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <repositories>
  	<repository>
  		<id>mengcraft</id>
  		<url>http://ci.mengcraft.com:8080/plugin/repository/everything/</url>
  	</repository>
  </repositories>


  <name>Example</name>

  <url>http://nukkit.memo.wiki/</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
		<groupId>cn.nukkit</groupId>
		<artifactId>nukkit</artifactId>
		<version>1.0-SNAPSHOT</version>
		<scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
	<finalName>${project.artifactId}-${project.version}</finalName>
	<defaultGoal>clean install</defaultGoal>
	<plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jar-plugin</artifactId>
           <version>2.3.1</version>
           <configuration>
               <archive>
                   <addMavenDescriptor>false</addMavenDescriptor>
               </archive>
           </configuration>
       </plugin>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.3.2</version>
           <configuration>
               <source>1.8</source>
               <target>1.8</target>
           </configuration>
       </plugin>
    </plugins>
  </build>
</project>
9.左のツリーでExamplePlugin右クリック→Maven→プロジェクトの更新→OK をします。

10.そしたら、画像のように進み、クラス作成をします。


11.画像のように入力して完了

実際にコードを書いてみよう

12.いよいよコードを書きます。(コピペしてかまいません)
package example.plugin.exampleplugin;

import cn.nukkit.Player;
import cn.nukkit.event.Listener;
import cn.nukkit.event.player.PlayerJoinEvent;
import cn.nukkit.plugin.PluginBase;
import cn.nukkit.utils.TextFormat;

public class Main extends PluginBase implements Listener{
	public void onEnable(){
		getLogger().info("起動しました。");
        this.getServer().getPluginManager().registerEvents(this, this);
	}
	public void onJoin(PlayerJoinEvent e){
		Player p = e.getPlayer();
		String name = p.getName();
		p.sendMessage(TextFormat.GREEN + name + "さん、ようこそサーバーへ!");
	}
}

plugin.ymlを書こう

13.plugin.ymlを書きます。ここには、プラグインの情報を書きます。まずはツリーのsrc/main/resourcesで右クリックをして新規→ファイル→plugin.ymlと入力→完了

14.これを書いてください。(コピペでかまいません)
name: ExamplePlugin
main: example.plugin.exampleplugin.Main
version: 1.0.0
author: Itsu
api: ["1.0.0"]

15.そしたら上書き保存しましょう。

コンパイルしよう

16.コードが書けたら、画像のように進みます。


17.Maven build(4)(4の部分は違う場合があります。)を押して、ゴールの部分にpackageと入力しましょう。そして完了を押します。

18.コンパイルをします。
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
などとエラーが出る場合がありますが、気にしないでください。

コンソールの最後のほうに、
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ ExamplePlugin ---
[INFO] Building jar: C:\pleiades\workspace\ExamplePlugin\target\ExamplePlugin-0.0.1-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:28.843s
[INFO] Finished at: xxx xxx x x:x:x JST 20xx
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
などと出たらコンパイル完了です。

動かしてみよう

19.Eclipse起動時に指定したworkspaceの中の
ExamplePlugin\targetにExamplePlugin.jarがあれば完了です。あとはNukkitのpluginsフォルダに入れれば動作します。
お疲れ様でした。

ここで説明したものはMavenプロジェクト、プラグインとして配布しています。ダウンロードしていただいたものを解凍していただき、ExamplePluginフォルダがMavenプロジェクト、ExamplePlugin.jarがプラグインとなっております。Mavenプロジェクトはお使いのEclipseにインポートしていただくことができ、なおかつコードを編集して改造していただくことができます。

ダウンロード:http://uploader.mcpe.jp/detail?c=1553

インポート方法

ファイル→インポート→Maven→既存Mavenプロジェクト→参照でフォルダを選択する→完了

workspaceが見当たらない場合

上記のコンソール出力文の青で書かれた部分がworkspaceのパスです。ショートカットをデスクトップに貼っておくといいでしょう。

あとがき

執筆:Itsu, ikatyo
難しいですが頑張ってください。