Bukkit 1.9がリリースされてから少し経ちました。 今まで自分が確認出来た、使えなくなってしまうプラグインやAPIを説明します。
Deprecatedになっていた2つのAPI
Painting
のイベント(Hanging
に移行)と、ContainerBlock
(InventoryHolder
に移行)が削除されました。
どちらも2012年には非推奨になっているのでそれほど大きな問題にはなっていないと思います。
強制的にUTF-8に
今までは環境に依存したCharsetが使われていましたが、1.9になってやっとUTF-8のみに統一されました。 英語圏の人だと、それほどマルチバイト文字を使う機会は多くないので問題無いかもしれませんが、 日本人としては、configにある日本語全てがマルチバイト文字文字であり、 Windows環境(Shift_JIS環境)を使っている人は対応する必要があります。
今まで、デフォルトのconfigを環境に依存したCharsetで保存するようになっていたプラグインも修正が必要です。
一応コメントをいれておくと、Bukkit 1.9 でファイルの読み書きが全環境UTF-8で統一されたので、WindowsだとShift-JISでconfig.yml を書くようなギミックを入れているプラグインは動作しなくなる可能性がある。
— うっちぃ (@ucchy99) 2016年3月7日
うちのプラグインは、WindowsだとShift-JISで読み書き、Mac・LinuxだとUTF-8で読み書きするような仕組みなので、Windowsで動作させると全滅するのです。
— うっちぃ (@ucchy99) 2016年3月7日
ここ、しゃむちゃんのプラグインのソース読んでパクってるところだったなぁ、そういえば。
Soundが大幅変更
SoundのEnumが書き直されました。
その為、Sound
を使っていた全てのプラグインが正常に動かなくなります。
SpecialSource
等を使うことで、配布プラグインを更新することが出来るはずですが、
1.8以前のEnumの名前と1.9移行のEnumの名前を対応させるようなデータが必要なので少し面倒です。
HeadDictionary、クリック時にサウンド鳴らす処理なんてしてるから、1.9でエラー吐いている
— misterT (@misterT2525) 2016年3月8日
そういえば、1.8と1.9だとSoundのEnum変わったもんな...これ結構なプラグイン死んでるんじゃないか?
— misterT (@misterT2525) 2016年3月8日
これ見た時は最初「??」ってなったよ... pic.twitter.com/vvqMUBTlBE
— misterT (@misterT2525) 2016年3月8日
Biomeの一部が変更
Soundと同じようにBiomeのEnumの一部が変更されていました。
1.7より古い一部のメソッド
1.6以前のgetOnlinePlayers()
など、返り値が変わったりした一部のメソッドを使ったプラグインが動かなくなりました。
プラグインに対して手動でマッピングを適応することで、
ソースコードにアクセス出来ない(更新出来ない)プラグインも対応させることが出来ます。
最後に
間違っている点や、ここに載っていない点などを見つけた場合は、私のTwitter@misterT2525に報告してくれると助かります。