MC CommanderMinecraft非公式コマンド支援

NBTとcomponentsの違い

Java版1.20.5から、アイテムに付ける名前やエンチャントなどの書き方が「NBT」から「components」に変わりました。古い解説のgiveコマンドが動かない原因の多くはこれです。

componentsNBT1.20.5

Giveジェネレーターを開く

更新日:

何が変わったのか

1.20.4までは、アイテムの追加情報を{...}のNBTでまとめて書いていました。1.20.5からは、名前、エンチャント、耐久値などが一つひとつ独立した「コンポーネント」になり、アイテムIDの直後の[...]に書きます。

1.20.4まで(NBT)1.20.5から(components)
書く場所IDの後ろの { }IDの直後の [ ]
区切り:=
エンチャントEnchantments:[{id:"sharpness",lvl:5}]enchantments={sharpness:5}(1.21.5以降)
壊れないUnbreakable:1bunbreakable={}
名前display:{Name:'...'}custom_name=...

giveでの比較

# 1.20.4まで
/give @p diamond_sword{Enchantments:[{id:"sharpness",lvl:5}],Unbreakable:1b} 1

# 1.21.5以降
/give @p diamond_sword[enchantments={sharpness:5},unbreakable={}] 1

1.20.5〜1.21.4の間は、エンチャントをenchantments={levels:{sharpness:5}}と書くなど、さらに細かい違いがあります。版ごとの違いを手で追うのは大変なので、Giveジェネレーターで版を選んで作るのがおすすめです。

componentsのよいところ

エンティティやブロックはNBTのまま

components になったのはアイテムだけです。summonでMobに付けるデータ({NoAI:1b}など)や、チェストの中身のようなブロックのデータは、今もNBTで書きます。ただし、Mobに持たせるアイテムの部分はcomponentsの形になります。

/summon zombie ~ ~ ~ {NoAI:1b}

今持っているアイテムのデータを確認する

Java版では次のコマンドで、手に持っているアイテムのIDとコンポーネントを表示できます。

/data get entity @s SelectedItem

実際のアイテムがどう書かれているかを見ると、giveの書き方の参考になります。

統合版は関係ある?

NBTからcomponentsへの変更はJava版の話です。統合版のgiveは、個数とデータ値の後ろにJSON形式でcan_destroyなどの限られた項目を指定する、別の仕組みです。

よくある質問

古いワールドのアイテムは消えますか?

消えません。ワールドを新しい版で開くと、アイテムのNBTは自動でcomponentsに変換されます。変わるのはコマンドで書くときの形です。

データパックの関数も書き直しが必要ですか?

アイテムのNBTを使っている部分(give、clear、itemのコマンドや、条件の指定)は書き直しが必要です。エンティティのNBTだけを使っている部分はそのまま動くことが多いです。

componentsの一覧はどこで見られますか?

入力中にTabキーで候補が表示されます。主な項目はGiveジェネレーターの入力欄として用意しています。

関連ページ

好きなアイテムを食べ物にするコマンド食べるとエフェクトが付くアイテムも作れます。バージョンを確認する方法

書き方が変わった版の一覧もあります。

アドベンチャーモードで壊せるブロックを決める

can_break・can_place_onの版別の書き方です。

giveコマンドでアイテム名が赤くなる原因

IDや書き方の誤りの見つけ方です。

最強の剣を出すコマンド

componentsを使ったgiveの例です。

コマンド辞典

基本構文とコマンド別の使い方を確認できます。

あわせて読みたい記事とコマンド例

マイクラのコマンドの基本構文

マイクラのコマンドの基本的な形、<>と[]の読み方、スラッシュや空白のルール、チート許可・O…

enchantコマンドで武器や道具にエンチャントを付ける基本

/enchant は手に持ったアイテムへ効果を付けるコマンドです。上限を超えたエンチャント付…

防具立てのコマンド

マイクラの防具立て(armor_stand)をsummonコマンドで出す方法を解説。腕を…

エンチャント本をコマンドで出す方法

マイクラJava版で、修繕や効率強化などが付いたエンチャント本をgiveコマンドで出す方…

中身入りのシュルカーボックス・チェストをコマンドで出す方法

マイクラJava版で、アイテムが入った状態のシュルカーボックスをgiveで出す方法と、中…

カスタムアイテムの作り方

マイクラのgiveコマンドで、名前、説明文、エンチャント、壊れない設定を付けたカスタムア…

ポーションをコマンドで出す方法

マイクラで俊敏・治癒・暗視などのポーションをgiveコマンドで出す方法を解説。Java版…

アイテムの名前に色を付けるコマンド

マイクラJava版で、giveコマンドでアイテムの名前に色や太字を付ける方法を解説。1.…

dataコマンドの使い方:Mobやブロックのデータを見る・書き換える

マイクラJava版の/dataで、Mobやプレイヤー、チェストなどのデータ(NBT)を確…