[Minecraft Java 1.20.5] componentsについて
はじめに
初めまして、borshchです。
私は普段からMinecraftのデータパックを作って遊んでいたのですが、4/23にver1.20.5が更新されコマンドやデータパック周りに大幅な変更が加わったらしいので調査していきます。
具体的にどのような変更が加わったのかというと・・・
どうやらアイテムの情報をnbtタグではなく『components』で管理するようになったらしいです。
上記のページには具体的な仕様も書かれていたのですが、実際に触ってみたほうがわかりやすそう・・・
ということで、この記事では実際にMinecraftを遊びながらcomponentsの仕様を確かめていきたいと思います。
実際に遊んで確認してみる
まずは適当なアイテムを投げてみてエンティティデータを確認しましょうか。
早速ワールドを作り、以下のコマンドを打ってみます。
/data get entity @e[type=item,sort=nearest,limit=1]
うーん変わってないですね・・・
あくまで『アイテムが持っているnbtタグ』が更新対象のため、エンティティが持っているnbtタグは変更されないということでしょうか。
ジャングルの原木自体はnbtタグを持っていないため、エンティティデータの変更もなかったみたいです。
ということで次はnbtタグを持っているアイテムのエンティティデータを確認しています。
Itemの中身が変わってますね。両者比較してみると飲んだ時に得られるバフ効果の表記が変化していることがわかります。
tag: {
effects: [
{
duration: 7,
id: "minecraft:saturation"
}
]
}
components: {
"minecraft:suspicious_stew_effects": [
{
duration: 7,
id: "minecraft:saturation"
}
]
}
上が ver1.20.4 、下が ver1.20.5 です。今までtagで管理されていたものがcomponentsで管理されるようになっています。
最大の変更点はフィールドの名前がわかりやすくなったことでしょうか。今まではバフの内容はeffectタグで指定されていたのが ver1.20.5 では "minecraft:suspicious_stew_effects" に代わっています。
今までは同じeffectタグでも怪しげなシチューが持っているものとポーションが持っているもので意味が変わっていましたが、そのあたりの判別がつきやすくなっていますね。
おわりに
今回はcomponentsの仕様を確認してみましたが、表示形式が変わっただけで中身はnbtタグとあまり変わらないように感じました。
componentsの一覧は公式ページに乗っているため、気になる方は読んでみてもいいと思います(英語ですが・・・)。
今後も備忘録がてらMinecraft関係の記事を投稿していきたいと考えています。
最後までお読みいただきありがとうございました。