Minecraftサーバーを動かす知識

Spigot 1.15 リリース

投稿:  By: HimaJyun

Spigot 1.15がリリースされました!!このリリースに関する情報を解説します。

Minecraft 1.15そのものに関する解説は行いませんので、それに関しては巷のWikiサイトなどを参考にしてください。

スポンサーリンク

Spigot 1.15

Minecraft 1.15の主な追加コンテンツはミツバチですが、これはサーバー側からしてみればブロックとMOBが追加されただけです。

これはサーバーの運営者側からすればとても嬉しい事で、Spigot 1.15ではサーバー側の変更がほとんどなく、APIの変更なども最小限です。

そのため、1.14で動作するプラグインはほぼ完全に互換性があり、1.14から1.15へのアップグレードはとても簡単だと予想されます。

Spigot 1.15の入手

--rev1.15を指定するだけです。簡単ですね。

java -jar BuildTools.jar --rev 1.15

今後数週間で1.15がデフォルトのバージョンになるようです。

アップグレード

1.14の時と同じですが、開発者のmd_5氏曰く、あるバージョンから1.15へのアップグレードは「技術的には可能」ですが、1.14.4からアップグレードすることが推奨されています。

(エンジニアが「技術的には可能」と言ったときは「オススメしない」「頑張ればできる(=頑張らないとできない)」「多分行けるはずだけど確認してない」くらいの意味合いです。要するに非推奨)

サーバーが1.14.4未満の場合は最初に1.14.4のサーバーで--forceUpgradeを引数に指定して起動、ワールドデータをアップグレードしてから1.15へアップグレードしましょう。

1.14.4から1.15へアップグレードする際にも--forceUpgradeをした方が良いでしょう。

バックアップはお忘れなく。

APIの変更

変更は小さいとは言え、いくつかのAPIは削除されています。

  • Achievement、FlowerPot(BlockState)、NoteBlock(BlockState)が削除されました。そもそも1.13~1.14の時点で正常に動作していなかったみたいですが、1.15からはエラーになります。
  • いくつかの非推奨なSpigot API(isInvulnerable、getLocale、isUnbreakable)は通常のBukkit APIに存在するため削除されました。
  • 複雑なレシピ(鎧の染色などの動的な出力を伴うレシピ)はShapedRecipeクラスではなく、ComplexRecipeクラスを返すようになりました。
  • ブロックバイオーム情報は、列ベースではなく3次元になりました。
  • SnakeYAMLが1.25に更新

非推奨APIの削除が中心なので、よほど古いプラグインを使用していない限りはサーバーの管理者にもSpigotプラグインの開発者にも関係ないでしょう。

NMSに関する注意事項

プラグイン開発者向けの話題、1.14と同様です。箇条書きで。

  1. NMSを使用する方法はSpigot APIでサポートされた方法ではないので、いきなり動かなくなる可能性がある
  2. 一部はNMSを使用しないと不可能かもしれないが、ほとんどの事はAPIで可能。もしくは機能要求で可能になる。
  3. NMSを使用する前に、それが本当に必要かを慎重に検討する必要がある。
  4. NMSを変更するからSpigot本体のAPI互換性が維持できる。そのためNMSの変更は警告などなしに行われる可能性がある。
  5. どうしてもNMSを使用する場合はちゃんと例外などを処理する必要がある。
  6. 唯一保証されているのは、マッピングが変更されるとCraftMagicNumbers.getMappingsVersion()が変更されること。

「NMS?なにそれ美味しいの?」「リフレクション?鏡の事かな?」レベルの人は気にしなくて構いません。

難読化マッピングの公開

Spigot 1.15のリリースには何ら関係ないのですが、紹介しておきます。

Minecraft 1.15から本体の難読化を解除するための難読化マッピングが公開されるようになりました。

これを使用することでMinecraftのソースコードを読むことが可能になります。

詳細は19w36aの時に投稿した記事をご覧ください。

個人的な見解

個人的な見解ですが、1.15は実質的にブロックとモブが追加されただけなのでアップグレードは非常に簡単だと思います。

自分のサーバーで確認した限り、バージョンをチェックして未知のバージョンだと弾くみたいな動作をしているプラグイン(有名どころだとDynmapとか)以外はそのまま動作しました。

いつバージョンアップしても良いと思いますが、バックアップはお忘れなく。

これまでの経験から、1~2週間くらいで1.15.1とかが出そうな予感もするので、それを待つのも良いでしょう。

doImmediateRespawn

個人的に「これいいな」と思った機能はdoImmediateRespawnです。

ゲームルールでこれを有効にすると死亡画面を表示せずにリスポーンさせることができるようになります。

便利だと思います。

参考

公式情報も読んでみてください。