JavatterAdventCalendar4日目です。
自分の記事ではSwingで作られているJavatterβの方ではなく、現在開発中のJavatterFXについて書こうと思います。

1回目はJavatterFXのプラグインの作成方法です。
今回は起動直後にHelloJavatterFXと呟くプラグインを作成してみます。

開発に必要になるので、本体を準備しましょう。
ここからダウンロードするかGithubからクローンして自分でビルドしてください。

まずはロードされた時に呼ばれるクラスを作成します。
今回はcom.github.orekyuu.plugin.PluginMainクラスを作成。
そしてorekyuu.plugin.loader.Pluginをインポートし、PluginアノテーションをPluginMainクラスに付けます。
nameにはプラグインの名前を文字列で与えます。
versionにはバージョンを文字列で与えます。

package com.github.orekyuu.plugin;

import orekyuu.plugin.loader.Plugin;

@Plugin(name = "プラグイン名", version = "1.0")
public class PluginMain {

}

次にロード時に呼ばれるメソッドを定義します。
@Plugin.Initアノテーションが付加されたメソッドはプラグインがロードされた時に実行されます。
メソッド名は好きな名前で構いません。

@Plugin.Init
public void init(){

}

今回はロードされた時につぶやきたいので、initの段階でつぶやくことにします。
ツイートをするにはcom.orekyuu.javatterfx.util.TweetDispenserを使用します
TweetDispenserのtweetメソッドはツイートをQueueに加え、別のスレッドで順番に処理されます。
JavatterβのTwitterUtilのtweetメソッドでは完全に別のスレッドでツイート処理が行われていたため、ツイートの順番は保証されていませんでしたが、TweetDispenserは呟く順番が保証されます。

ソースコードが完成しました。一応コードを載せておきます。

package com.github.orekyuu.plugin;

import orekyuu.plugin.loader.Plugin;

import com.github.orekyuu.javatterfx.util.TweetDispenser;

@Plugin(name = "プラグイン名", version = "1.0")
public class PluginMain {

	@Plugin.Init
	public void init(){
		TweetDispenser.tweet("Hello!JavatterFX");
	}
}

プラグインの配布方法はJarファイルとして出力するだけです。JavatterFXはロードされたクラスの中からPluginアノテーションの付加されたクラスを検索するのでマニフェストファイルの編集は必要ありません。
実際に実行してみてHello!JavatterPluginとツイートできていれば完成です。お疲れ様でした。