最初に
今回はいつものダラダラ解説ではないです。
Tagを用いて処理の実行を制御する
Tagの操作
処理の条件にはTagを使いましょう。
裏側でファイルやデータベースを用いて判定してもいいですが、なにかと用意が面倒くさいと思います。
というわけでマインクラフトに搭載されているTagという機能を使って処理の制御をしてみましょう。
Tagの付与
Tagの付与は簡単です。
player.addScoreboardTag("Tag名");
で付与することができます。
付与することのできるTag名には一部使うことのできない記号があるので注意しましょう。
マインクラフト側からでは空白、/は使用することができないのでプラグインでも同じだと思われます。
またこれら以外にも使えない文字があると思われます
Tagの取得
TagはSetに格納されているのでListのように番号を指定して取得することができません。
toArrayなどを用いれば全要素の取得をすることができます。
Tagの存在確認
タグ名が明確に分かっている場合は
Set Tags = player.getScoreboardTags();
boolean TagExist = Tags.constains("確認したいTag名");
のようにして論理型で取得することができます。
Tag名が分からない場合にはforとtoArrayを用いて一つずつindexOfなどの処理を通していくことになるかと思います。
Tagの削除
Tagを削除するときは
player.removeScoreboradTags("Tag名");
で削除することができます。
Tagの利用
TagはOP権限のないプレイヤーからは取得、変更することができない上にサーバーから抜けても情報が保持されるので使い勝手は極めて良いと言えます。
私が作成しているGUIメニュープラグインではどのページを開いているかをTagを用いて取得しています。
Tagの個数上限は1エンティティにつき1024個なので使い切ることはないと思いますがむやみやたらに付与すると(多分)大変なことになるので気を付けましょう。
さいごに
みなさんもTagを用いて楽々プラグインづくりをしてみませんか?
それでは良いプラグインライフを~
追記
追記 2022/10/01
(ストックされていたので最近思うことを少し。)
タグを使うのは良いですが、出来るだけプラグイン側でデータを保持するようにしましょう。
(HashMapを使うなり、コンフィグファイルを使うなど。)
タグの衝突が発生する確率がゼロではないので危険です。
それにHashMapなどに入れれば検索や取り出しが簡単になるので、ぜひ活用してステップアップしましょう。
それでは。
-坂木啞ルカ-