Brigadier

提供: Minecraft Wiki
ナビゲーションに移動 検索に移動
この項目はJava Edition限定の要素です。 
Brigadier
製作

Mojang Studios

プラットフォーム

?

開発言語

Java

最新バージョン

1.0.18

リリース日

?

サイズ

?

ライセンス

MIT License

ソースコードの入手

可

私はこの名前をとても誇りに思っています!BrigadierはMinecraftが使用するコマンドエンジンの名前です。

— Dinnerbone、Brigadier[1]より

Brigadierは、Java Edition向けにデザインされ開発されたコマンドパーサ及びディスパッチャーであり[2]、主にDinnerboneによって管理されている[3]。これはMojangがオープンソースライセンス下で公開したものの中で初めてJava Editionで使用されたライブラリである[4]。

使用方法

[編集 | ソースを編集]

Brigadierは文字列として入力されたコマンドを解釈し、実行するために使用される。

  • コマンドノードを引数やリテラルのブランチとして定義する
  • コマンドの文脈に合わせて、コマンドソースを変更・分岐する
  • コマンド解釈での動的検査[6]
  • 現在のコマンドノードから続く可能性のある全てのコマンドの列挙[7]
  • 実行が成功/失敗した時のコマンドの実行結果のリアルタイム処理
  • 再帰的コマンドノードのリダイレクト
    • /execute runはバニラのコマンドディスパッチャーのルートノードにリダイレクトする

制約と問題

[編集 | ソースを編集]

Brigadierには、/effectや/weatherにおける整数データ型や/timeにおける浮動小数点数データ型といった数値制限のように、コマンドの実行時にいくつかの制約があるため、コマンド内で解析される多くの整数値にはアクセスできない場合がある。

Minecraftの引数の型

[編集 | ソースを編集]
この節の内容は、Mojang StudiosまたはMinecraft Wikiのサポート対象外です。

Brigadierとその使用方法に関するより一般的なドキュメントはGithubのリポジトリ上にあるが、これはもっぱらMinecraftによって追加され使用される引数の型についての情報である。コマンドの基本的な実装はModローダーによって様々かもしれないが、引数の型についてはほぼ一貫性が維持されている。使用するModローダーには、Brigadierを使用してコマンドを追加する方法に関する独自のドキュメントが用意されている場合もあるだろう。

引数の型
クラス名 説明 使用例
Commands.literal 正確に入力されるべき定型のキーワード。 /datapack list
StringArgumentType.greedyString 可能な限り長い文字列に一致する(コマンドの最末尾でのみ有効)。 /say all of this will be in the greedy string
StringArgumentType.word スペースの無い、最も長い文字列に一致する。 /tag @s add oneword
StringArgumentType.string クォーテーションによって囲われていない場合、スペースの無い最も長い文字列に一致する。greedyStringと似ているが、引数を後から追加できる。 /datapack enable "multiple words" last
BoolArgumentType.bool trueおよびfalseのみ。 /gamerule keepInventory true
IntegerArgumentType.integer Javaのintに同じ。整数でなければならない。引数に最小値か、「最小値と最大値」を指定できる。 /scoreboard players set @s objective 100
LongArgumentType.longArg Javaのlongに同じ。整数でなければならない。intと類似しているが、より大きな数を格納できる。引数に最小値か、「最小値と最大値」を指定できる。 どのコマンドにも使用されていない
FloatArgumentType.floatArg Javaのfloatに同じ(有効数字6桁)。 小数点数が利用可能。引数に最小値か、「最小値と最大値」を指定できる。 /playsound minecraft:ambient.cave.master @s ~ ~ ~ 1.23456
DoubleArgumentType.doubleArg Javaのdoubleに同じ(有効数字15桁)。小数点数が利用可能。引数に最小値か、「最小値と最大値」を指定できる。 /playsound minecraft:ambient.cave.master @s ~ ~ ~ 12.345678912345

(Javaのint、long、float及びdoubleについては、ここを参照されたし)

2014年10月25日DinnerboneがMC-10880のコメントでBrigadierに言及した。
2017年7月27日Dinnerboneが「Brigadier」という暗号化されていないコマンドパーサライブラリを発表した。
Java Edition
1.1317w45aコマンドがBrigadierによって処理されるようになった。
MinecraftがBrigadierを依存関係に組み込んだ。
2018年9月26日BrigadierがMITライセンスの下でオープンソース化された。[8]
1.1419w08aコマンドにおいて、シングルクォーテーションで文字列を表せるようになった。[9]

バージョン履歴

[編集 | ソースを編集]
バージョン 日付 変更点
1.0.15 2018年9月26日[10]
  • 最初のリリース
1.0.17 2019年2月19日[11]
  • 文字列にシングルクォーテーションを含められるようになった
  • long引数を追加
  • 任意のテキスト位置におけるサジェストの計算の実装
  • Guavaに依存しなくなった
1.0.18 2021年7月16日[12]
  • パフォーマンス最適化

ギャラリー

[編集 | ソースを編集]

ナビゲーション

[編集 | ソースを編集]