giveコマンドが使えないときの確認ポイント
/giveでアイテムが出ない、赤文字になる、エンチャント付きアイテムが作れないときの確認点を整理します。
giveアイテムIDcomponents/NBT
基本形を先に試す
まずは装飾を全部外した基本形で確認します。
/give @p minecraft:diamond 1これが動かない場合、アイテムIDや権限、実行環境の問題です。これが動くなら、個数、NBT、components、エンチャント指定のどこかで失敗している可能性が高いです。
Java 1.20.5以降の注意
Java版1.20.5以降では、アイテムの細かい指定が従来のアイテムNBTからcomponents形式へ移っています。古い解説記事の {{Enchantments:[...]}} をそのまま新しいバージョンで使うと失敗することがあります。
統合版ではそのまま使えない指定
統合版の /give はJava版のNBTやcomponentsと同じではありません。Java版の複雑なアイテムデータを統合版へ完全に自動変換することは難しいため、まずはアイテム名と個数だけの基本形に分けて確認します。
エラーメッセージ別の原因
- 「不明なアイテム」:アイテムIDの綴り違いか、そのバージョンに存在しないアイテムです。Java版1.20.3で
grassがshort_grassに変わったように、名前が変わったアイテムもあります。ID検索で確認してください。 - 「整数が無効です」:個数の位置に数字以外が入っています。IDと
[ ]の間に空白を入れると、この位置がずれて起こります。 - 「不明なコンポーネント」:componentsの名前の間違いか、1.20.5より前のバージョンでcomponentsを使っています。
- エラーは出ないのにアイテムが来ない:インベントリが満杯だと、足元にドロップしています。対象が別のプレイヤーになっていないかも確認します。
バージョン別の書き分け
1.20.4以前: /give @p diamond_sword{display:{Name:'{"text":"聖剣"}'}} 1
1.20.5〜1.21.4: /give @p diamond_sword[custom_name='{"text":"聖剣"}'] 1
1.21.5以降: /give @p diamond_sword[custom_name={"text":"聖剣"}] 1
名前を付けるだけでも、3つの時期で書き方が違います。使っているバージョンに合わせてgiveコマンド生成で作ると確実です。
個数の上限
1回の /give で指定できる個数には上限があり、スタックできないアイテム(剣など)を大量に指定すると、インベントリの空きに入りきらない分は落ちるか、コマンドが失敗します。まずは1個で試してから増やしましょう。