ECILA RIP

Minecraftや開発の話をするブログです

【Spigot/プラグイン/開発】BossBar便利すぎないすか?

f:id:ecilavip:20170623032448p:plain

なんか知らん間にBossBarが追加されてたので触ってみた。

どうも、えしらです。毎日ブログを書くと言いましたが、早速遅刻気味です。古戦場が始まってしまったので仕方ないです。僕の生活はサイゲ時間に縛られているので朝5時が日付の変わり目となっておりますのでセーフです。

BossBar触ってみた

かつてはエンダードラゴンなどのボスモンスターのために存在していた「ボス用HPゲージ」ですが、最近のバージョンでは完全に「ボスバー」という存在として独立しているみたいです。Spigotプラグイン勢にとっては、このように自由にいじれるUIというのは非常に貴重です。特にゲージタイプのものは嬉しい限りです。*1

詳しいことはJavaDoc読んでねくらいしか言えないので、かいつまんで見ていこうかと思います。

BossBar (Spigot-API 1.12-R0.1-SNAPSHOT API)

出来ること

  • 色の指定
  • doubleによるゲージの溜まり具合*2指定(1=100%, 0=0%)
  • 表示される文字の指定
  • 表示スタイルの指定
  • フラグの指定(後述)
  • 表示対象プレイヤーの指定

基本的な使い方

Server#createBossBar というメソッドがあるのでそれをぶん殴る

this.getServer().createBossBar("ボスバー", BarColor.RED, BarStyle.SOLID);

フラグについて

BarFlagというEnumが定義されている。1.12ではCREATE_FOG, DARKEN_SKY, PLAY_BOSS_MUSICの3つがある。

通常時、CREATE_FOG時、DARKEN_SKY時の3つを比べてみた

f:id:ecilavip:20170623041040p:plain f:id:ecilavip:20170623041042p:plain f:id:ecilavip:20170623041043p:plain

わかっちゃいたけど微妙だな

その他使ってみた考察

前述した通り「完全に独立している」

例えば、あるモンスターのHPと連携させたい!という場合は自前で実装を書かなきゃいけない。

ゲージの増減はヌルっと動く

BossBar#setProgressでゲージを動かせるんですけど、割とヌルっと動いてくれます。ほんとほんと。

最大で六本まで同時に出せる

複数ゲージ持ったボスとかと戦えそう。SA○感。

SheepServer用に使ってみた

f:id:ecilavip:20170623041307p:plain

「時々湧くミニボスにHPゲージを付けてみた」

その対象のEntityから半径50以内にいないとゲージが出ない機能とか盛り込んだので、クラスを作ってスケジューラで回してます。

github.com

*1:諸説ある。けどそうじゃない?

*2:語彙力が圧倒的に足りていない。