/giveコマンドとは
/giveコマンドは、Minecraft Java版で指定したプレイヤーへアイテムを渡すための基本コマンドです。 ただアイテムを渡すだけでなく、表示名、説明文、エンチャント、不可壊、希少度などを組み合わせることで、配布マップや検証ワールドで使う特別なアイテムを作れます。
Java Edition 1.21.5以降では、アイテムIDの後ろに角括弧でcomponentsを書く形を使います。 基本構文は /give 対象 アイテムID[components] 個数 です。対象には@p、@a、@s、@r、またはプレイヤー名を指定できます。
手書きで長いコマンドを作ると、引用符やカンマのミスで赤文字エラーになりがちです。フォームで選んで生成すれば、入力ミスを減らしながら素早く試せます。
使い方
最初に対象プレイヤーを選びます。近くのプレイヤーへ渡すなら@p、自分へ渡すなら@s、全員へ配るなら@aを使います。 特定のプレイヤーへ渡したい場合は、任意のプレイヤー名を入力してください。
次にアイテムを選びます。日本語名でも英語IDでも検索できます。エンチャント欄では、選んだアイテムに付けやすい効果が一覧表示されます。 付けたい効果をONにしてレベルを入力し、保存すると生成コマンドへ反映されます。
コマンドが完成したらコピーして、Minecraftのチャット欄またはコマンドブロックへ貼り付けます。プリセットを使ったあとでも、名前やレベルを自由に変更できます。
Java Edition 1.21.5以降対応について
Give生成では、Java Edition 1.21.5以降で使うitem components形式を優先しています。 エンチャントは enchantments={sharpness:255,fire_aspect:10} のように出力し、古いlevels形式は使いません。
custom_nameは custom_name={text:'名前',italic:false}、rarityは rarity=epic のように出力します。 attribute_modifiersはバージョン差でエラーになりやすいため、現在のComponents形式では出力しません。属性を使う場合は旧NBT互換を選んでください。
コマンドブロックで使う方法
コマンドブロックで使う場合は、まずチートを有効にしたワールドで /give @p minecraft:command_block を実行します。 設置したコマンドブロックへ生成コマンドを貼り付け、ボタンやレバー、レッドストーン信号で実行します。
配布マップでは、対象を@pにするか@aにするかが重要です。近くの人だけに渡したいなら@p、参加者全員に配りたいなら@aを使います。 連続実行する場合は、同じアイテムが大量に配られないように条件も確認してください。
Java版と統合版の違い
項目Java版統合版
/give構文item componentsを使用統合版独自の構文
エンチャント指定enchantments component対応範囲が異なる
高レベル付与コマンドで指定可能制限や構文差がある
このツール対応別ツールとして扱う予定