更新日:
赤くなる位置で原因がわかる
| 赤くなる位置 | 考えられる原因 |
|---|---|
| アイテムIDの部分 | IDが存在しない(つづり、日本語名、古いID、版違い) |
IDの後ろの{や[ | NBTとcomponentsの書き方が今の版と合っていない |
| セレクターの部分 | @の後の文字や、[]の中の引数が間違っている |
原因1:日本語名や大文字で書いている
IDは英語の小文字です。「ダイヤモンドの剣」はdiamond_sword、「金のリンゴ」はgolden_appleです。単語の間はスペースではなくアンダースコア(_)でつなぎます。
原因2:IDが変わった・似た名前がある
アップデートでIDが変わることがあります。たとえばJava版1.20.3で、草(背の低い草)のgrassがshort_grassに変わりました。古い解説のIDが赤くなるときは、今のIDを調べ直してください。
似た名前にも注意します。エンチャントされた金のリンゴはenchanted_golden_apple、ネザライトの剣はnetherite_swordです。
原因3:統合版のIDを使っている
スポナーは統合版だとmob_spawnerですが、Java版ではspawnerです。このように版でIDが違うアイテムがあります。
原因4:1.20.5以降のcomponentsになっていない
Java版1.20.5から、アイテムに付けるデータの書き方が変わりました。古いNBTの書き方は、IDの後ろの{から赤くなります。
× /give @p diamond_sword{Enchantments:[{id:"sharpness",lvl:5}]}
○ /give @p diamond_sword[enchantments={sharpness:5}]
下の書き方は1.21.5以降の形です。1.20.5〜1.21.4では[enchantments={levels:{sharpness:5}}]と書きます。版によって細かい形が違うので、Giveジェネレーターで版を選んで作るのが確実です。違いの詳しい説明はNBTとcomponentsの違いにあります。
正しいIDの調べ方
- ゲーム内で確認する:Java版では
F3+Hで詳細表示をオンにすると、アイテムにカーソルを合わせたときにIDが表示されます。 - 入力補完を使う:
/give @p diamondまで打つと、diamondを含むIDの候補が表示されます。Tabキーで選べます。 - ID検索を使う:ID検索で日本語名からIDを探せます。
赤くならないのに渡されないとき
IDが正しくても、インベントリがいっぱいだとアイテムは足元に落ちます。また、対象のセレクターに当てはまる人がいないと何も起きません。giveが使えないときの確認ポイントも合わせて確認してください。
よくある質問
ブロックのIDもgiveで使えますか?
アイテムとして存在するブロックなら使えます。ただし水や溶岩、炎、ネザーポータルのように、アイテムとしては存在しないブロックはgiveできません。水と溶岩はバケツ(water_bucket、lava_bucket)で渡します。
ポーションや矢の種類を指定したいです。
Java版1.20.5以降はcomponentsのpotion_contentsで指定します。版によって書き方が違うので、ポーション生成ツールを使うと確実です。
赤くならないのに「不明なアイテム」と出ます。
入力中は文字として正しくても、実行時にIDが存在しないと判定されることがあります。MODのアイテムなら、MODの名前空間(modid:item)を付けているか確認してください。