更新日:

giveコマンドが使えないときの確認ポイント

/give が動かないときは、まずアイテムIDと対象だけの短いコマンドを試します。次に個数、名前、エンチャントを一つずつ追加すると原因を探しやすくなります。

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版の複雑なアイテムデータを統合版へ完全に自動変換することは難しいため、まずはアイテム名と個数だけの基本形に分けて確認します。

エラーメッセージ別の原因

バージョン別の書き分け

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コマンド生成で作ると確実です。

個数の上限

Java版の /give で一度に渡せるのは、そのアイテムの「100スタック分」までです。64個まとまるアイテムなら6400個、16個のエンダーパールなら1600個、剣のようにまとまらないアイテムなら100個が上限で、それを超えるとエラーになります。

上限の範囲内でも、インベントリに入りきらない分は足元に落ちます。大量に渡すときは、受け取る人のインベントリを空けておくか、チェストに入れて渡す方法(シュルカーボックスに入れて渡す)が便利です。

関連ページ

giveコマンド生成

バージョン別にgiveを生成します。

Java/統合版 変換補助

新旧構文と移植下書きを作ります。