コマンド構文解説-アイテムを自由にゲット!/give, /replaceitem-
投稿日:2021/02/06
最終更新日:2021/09/26
どうも、ユキミ大福です。
今回はMinecraft統合版のコマンドである『 /give 』及び『 /replaceitem 』について解説をしていきます。
ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
今回のコマンドは?
今回ご紹介するコマンドは『 /give (ギブ)』と『 /replaceitem (リプレイスアイテム)』です。どちらもプレイヤーにアイテムを付与できるコマンドですが、できることが多少違います。
コマンドブロックやストラクチャーブロック等のコマンド限定アイテムを手に入れるためにも使われるこの2つのコマンドですが、まずは /give から解説していきましょう。
/give のコマンド構文
/give <セレクター> <アイテムID> <個数(int)> <データ値(int)> <コンポーネント>
- <セレクター>:必須
ターゲットセレクター。プレイヤーしか対象にできない。ゲーマータグを直接入力可。 - <アイテムID>:必須
アイテムID。データ値は個数の後に入力するので注意。 - <個数(int)>:省略可
付与するアイテムの個数をint型の数値で指定する。省略した場合は「1」として扱われる。 - <データ値(int)>:省略可
付与するアイテムのデータ値をint型の数値で指定する。省略した場合は「0」として扱われる。 - <コンポーネント>:省略可
付与するアイテムに対してコンポーネントを設定する。省略した場合は何のコンポーネントも付与されない。コンポーネントについては ↓ の記事で解説します。
/give の失敗条件
/give の成功条件
- 上記の失敗条件を満たしていない場合。
- コマンドが1人にしか成功しなくとも成功扱いとなる。
- プレイヤーが保有できるアイテム数をオーバーする数の個数を指定しても成功する。
- 存在しないデータ値を入力しても基本的には成功する。ただし、アイテムによって実行結果が様々なため非推奨。
/give の実行例
例1)
コマンド:/give @p diamond
実行結果:基準座標から1番近いプレイヤーにダイヤモンドが1個与えられる。
例2)
コマンド:/give @a iron_block 16 0 {"can_place_on":{"blocks": ["bedrock"]}}
実行結果:読み込まれているチャンク内のプレイヤー全員に「岩盤に触れるようにのみ設置可能な」鉄ブロックが16個与えられる。
/give の詳細解説
/give の概要
/give はプレイヤーにアイテムを付与するコマンドです。
成功すると指定したアイテムを拾ったかのような扱いでアイテムが付与されます。つまり、空いているホットバーの左端から順に、ホットバーが埋まったらプレイヤーインベントリの左上から順にアイテムが入ります。
以下で解説する /replaceitem よりも柔軟にプレイヤーへアイテムを付与でき、かなりお手軽なのが特徴です。単純に「あのアイテムが欲しい!」という時に便利というわけですね。
/give の実行結果等々
コマンドがエラーとなった場合には以下のように返ってきます。
- 「セレクターに合う対象がありません」
<セレクター>に合う対象エンティティが存在していない場合のエラー。 - 「セレクターはプレイヤーの型にする必要があります」
<セレクター>の対象にプレイヤー以外が含まれる可能性がある場合のエラー。
コマンドブロックが保持・出力する結果は「コマンドの実行に成功したか(True or False)」と「コマンドがいくつの対象に成功したか(int)」の2点です。コマンドが成功した対象数については、RSコンパレーターを用いてRS動力の形で取り出せます。
/give の強み・使い道
サバイバルモードやアドベンチャーモードの時でも、コマンドさえ実行できるのであれば自由にアイテムをゲットできるのが /give の強みです。
またクリエイティブモードであっても、クリエイティブインベントリに存在しないアイテムや、コンポーネントを付与したアイテム、特定の耐久値を持った道具・装備アイテム等を自由に手に入れられるのも /give の強みです。
アイテムを他のプレイヤーに付与する手段の中では最もお手軽な点が、/give の何よりの強みだと個人的には思います。
/give の弱み・弱点
この /give を用いてプレイヤーにアイテムを付与する場合、デフォルトのアイテム名のアイテムしか付与できません。さらに、道具・装備アイテムに特定のエンチャントを付与した状態でアイテムを付与することもできません。
この弱点に関しては /replaceitem でも同様で、金床でアイテム名を変更したアイテムや、エンチャントを付与したアイテムを付与するには、別の方法を取るかありません(v1.17.30時点)。その方法に関しては以下の記事で紹介します。
また、コマンド自体はプレイヤーインベントリがいっぱいでも成功しますが、その状態ではプレイヤーがアイテムを入手できません。
この問題を回避可能なのが次にご紹介する /replaceitem です。
/replaceitem のコマンド構文
/replaceitem block <座標(int)> slot.container <スロットID(int)> <アイテムID> <個数(int)> <データ値(int)> <コンポーネント>
/replaceitem entity <セレクター> <スロットタイプ> <スロットID(int)> <アイテムID> <個数(int)> <データ値(int)> <コンポーネント>
- <座標(int)>:blockモードの場合、必須
アイテムを置き換えたい、内部インベントリを持つブロックのあるXYZ座標をint型で指定するか相対座標を入力する。相対座標を入力する場合、基準座標からの距離を指定する。 - <セレクター>:entityモードの場合、必須
ターゲットセレクター。ゲーマータグを直接入力可。 - <スロットタイプ>:entityモードの場合、必須
対象としたブロック・エンティティが持つインベントリ内スロットの内、1カ所を指定する。スロットによっては、次のスロットIDが必要なものもある。詳細は下の方で解説。 - <スロットID(int)>:必須
スロットIDをint型の数値で指定する。スロットによっては必要なものもある。特に指定が無ければ「0」を入力する。詳細は下の方で解説。 - <アイテムID>:必須
アイテムID。データ値は個数の後に入力するので注意。 - <個数(int)>:省略可
付与するアイテムの個数をint型の数値で指定する。省略した場合は「1」として扱われる。 - <データ値(int)>:省略可
付与するアイテムのデータ値をint型の数値で指定する。省略した場合は「0」として扱われる。 - <コンポーネント>:省略可
付与するアイテムに対してコンポーネントを設定する。省略した場合は何のコンポーネントも付与されない。コンポーネントについては ↓ の記事で解説します。
/replaceitem の失敗条件
- 構文が適切でない(スペルミス等)。
- そのスロットを持たない、またはそのスロットに指定したそのアイテムを持たせる・装備させることができないブロック・エンティティを対象に指定している。
- 指定したセレクターの条件に合う対象が存在しないか、読み込まれているチャンク内に存在していない。
- 指定した座標に内部インベントリを持つブロックが存在しない。
- 指定したアイテムの個数が、そのアイテムがスタックできる数を超えている。
/replaceitem の成功条件
- 上記の失敗条件を満たしていない場合。
- コマンドが1体にしか成功しなくとも成功扱いとなる。
- 指定したスロットにアイテムが存在していても、そのアイテムを上書きする形で置換され、成功する。該当スロットに全く同じ種類・個数のアイテムを置換する場合も同様。
- 存在しないデータ値を入力しても基本的には成功する。ただし、アイテムによって実行結果が様々なため非推奨。
- このコマンドでアイテムを装備させても、その装備が表示されないエンティティも存在する(村人など)。
/replaceitem の実行例
例1)
コマンド:/replaceitem entity @p slot.hotbar 0 diamond
実行結果:基準座標から1番近いプレイヤーのホットバー0番(ホットバーの一番左)がダイヤモンド1個に置換される。
例2)
コマンド:/replaceitem entity @e[r=20] slot.armor.chest 0 diamond_chestplate
実行結果:基準座標から半径20以内のエンティティ全ての「胸当ての装備スロット」にダイヤモンドのチェストプレートが装備される。
例3)
コマンド:/replaceitem block 100 70 120 slot.container 4 concrete 64 8 {"can_place_on":{"blocks": ["bedrock"]}}
実行結果:座標( 100, 70, 120 )に存在し、内部インベントリを持つブロックの「4番スロット」を「岩盤に触れるようにのみ設置可能な」薄灰色のコンクリート64個に置換する。
/replaceitem の詳細解説
/replaceitem の概要
/replaceitem はプレイヤーにアイテムを付与するだけでなく、特定の装備をエンティティに着せたり、ブロック内部のインベントリの内容を変更できるコマンドです。
成功すると、指定したアイテムで指定したスロットを強制置換します。/give とは違い、必ず特定のスロットを指定する必要がありますが、確実にアイテムを付与したり装備を着せたりできます。
/give よりも手軽さには欠けますが、その分様々な応用法があるのが特徴です。その応用法の広さは、指定できるスロットの種類の多さを見ていただければご理解いただけると思います。
スロットタイプとスロットID
スロットタイプとスロットIDはセットで用いられ、特定のインベントリスロット1つを示します。かなり様々な種類が存在するため、箇条書きで見てみましょう。
ver.1.17.30時点のスロットタイプ・IDのリスト
- スロットタイプ:slot.armor.head
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:頭の装備枠。ヘルメット等を着用可能 - スロットタイプ:slot.armor.chest
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:胸当ての装備枠。チェストプレート等を着用可能 - スロットタイプ:slot.armor.legs
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:足の装備枠。レギンス等を着用可能 - スロットタイプ:slot.armor.feet
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:靴の装備枠。ブーツ等を着用可能 - スロットタイプ:slot.weapon.mainhand
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:メインハンド(デフォルトでは右手)の装備枠。 - スロットタイプ:slot.weapon.offhand
スロットID:0
制限:防具立て、Mob、プレイヤーのみ有効(防具が表示されないMobも含まれる)。
説明:オフハンド(デフォルトでは左手)の装備枠。盾等を装備可能。 - スロットタイプ:slot.hotbar
スロットID:0~8
制限:プレイヤーのみ有効。
説明:ホットバー。0で一番左、8で一番右。 - スロットタイプ:slot.enderchest
スロットID:0~26
制限:プレイヤーのみ有効。
説明:プレイヤーそれぞれのエンダーチェスト内インベントリ。0で一番左上となり、右に1つ進む度に番号が1つ増える。右端まで来たら1段下の左端からになる(つまり、26で一番右下)。
- スロットタイプ:slot.inventory
スロットID:対象によって変動
制限:プレイヤー、チェスト付きトロッコ、ホッパー付きトロッコのみ有効。
説明:プレイヤーやチェスト付きトロッコ等のインベントリ。0で一番左上となり、右に1つ進む度に番号が1つ増える。右端まで来たら1段下の左端からになる(つまり、slot.enderchestと同じ)。 - スロットタイプ:slot.saddle
スロットID:0
制限:なついた後のウマ、ロバ、ラバのみ有効で、サドル(鞍)のみ有効。
説明:ウマ、ロバ、ラバのサドル。 - スロットタイプ:slot.armor
スロットID:0
制限:なついた後のウマのみ有効で、馬鎧のみ有効。
説明:ウマの馬鎧。(ラマに着せるカーペットもこのスロット?情報求む!) - スロットタイプ:slot.chest
スロットID:0~14
制限:チェストの付いたロバ、ラバのみ有効。
説明:チェストの付いたロバ、ラバのチェスト内インベントリ。0で一番左上、14で一番右下。…のはずだが、v1.17.30のバグなのかスロットID=0でslot.saddleの部分に、スロットID=14で一番右下から1つ左の場所にアイテムが入ってしまい、一番右下のスロットのアイテムを置換できない(エラーになる)。これも情報求む! - スロットタイプ:slot.container
スロットID:ブロックによって変動
制限:blockモードでのみ有効。
説明:blockモードで唯一指定可能なスロットタイプ。スロットIDの設定パターンは以下の通り。なお、どのパターンでも、そのブロックの持つインベントリ数を超えるスロットIDを指定するとエラーになる。
・かまどタイプ:
かまどや溶鉱炉等が該当。0でアイテム投入スロット、1で燃料スロット、2で成果物スロット。
・醸造台:
醸造台のみ該当。左から0, 1, 2で成果物スロット、3でアイテム投入スロット、4で燃料スロット。
・チェストタイプ:
チェスト、ディスペンサー、ホッパー等、上記2パターンに当てはまらないブロック全般が該当。0で一番左上となり、右に1つ進む度に番号が1つ増える。右端まで来たら1段下の左端からになる(つまり、slot.enderchestと同じ)。
/replaceitem の実行結果等々
コマンドがエラーとなった場合には以下のように返ってきます。
- 「セレクターに合う対象がありません」
<セレクター>に合う対象エンティティが存在していない場合のエラー。 - 「<スロットタイプ>スロット <スロットID>を <個数> * <アイテム> に置き換えることができません。」
その<スロットタイプ>に本来搭載できないアイテムで置換しようとした場合、またはそもそも、対象エンティティがその<スロットタイプ>を持たない場合のエラー。 - 「スロット <スロットID>を置き換えられませんでした。(特定の値)の間の値を指定する必要があります。」
スロットIDの指定が間違っている場合のエラー。 - 「Pos(<座標(int)>)にあるブロックはコンテナではありません」
指定した<座標(int)>に内部インベントリを持つブロックが存在しない場合のエラー。
コマンドブロックが保持・出力する結果は「コマンドの実行に成功したか(True or False)」と「コマンドがいくつの対象に成功したか(int)」の2点です。コマンドが成功した対象数については、RSコンパレーターを用いてRS動力の形で取り出せます。
/replaceitem の強み・使い道
/give と同様に、サバイバルモードやアドベンチャーモードの時でも、コマンドさえ実行できるのであれば自由にアイテムをゲットできるのが /replaceitem の強みです。
またクリエイティブモードであっても、クリエイティブインベントリに存在しないアイテムや、コンポーネントを付与したアイテム、特定の耐久値を持った道具・装備アイテム等を自由に手に入れられるのも、/give 同様の /replaceitem の強みです。
アイテムを他のプレイヤーに付与する手段の中では、/give と比べてややお手軽に欠けますが、その代わりに、プレイヤー以外のエンティティに装備を着せたり、コマンドでブロックインベントリを直接操作できたりするのは、/give には無い、/replaceitem だけの強みだと個人的には思います。
また /give とは異なり、例えスロットが埋まってしまっていたとしても確実にアイテムを付与できるのも /replaceitem の強みです。
/replaceitem の弱み・弱点
/give でもそうでしたが、この /replaceitem を用いてアイテムを置換する場合、デフォルトのアイテム名のアイテムしか付与できません。さらに、道具・装備アイテムに特定のエンチャントを付与した状態でアイテムを付与することもできません。
金床でアイテム名を変更したアイテムや、エンチャントを付与したアイテムを付与するには、別の方法を取るかありません(v1.17.30時点)。その方法に関しては以下の記事で紹介します。
またこのコマンドは、アイテムスロットを強制的に置換するため、逆を言えばそのスロットにあったアイテムは消えてしまいます。十分に注意しましょう。
今回ご紹介した /give と /replaceitem の違いはわかりましたか?どちらもアイテムを自由に引き出せるコマンドでしたが、得意な場面がそれぞれ異なります。それぞれの長所に合った使い方をしたいですね!
今回のまとめ
- 『 /give 』はスロットを指定せずにプレイヤーにアイテムを付与するコマンド!
- 『 /replaceitem 』はスロットを指定してエンティティやブロックのそのスロットのアイテムを置換するコマンド!
関連記事
- コマンド構文解説-霧を操る…?/fog-
- コマンド構文解説-エンティティにライド・オン!/ride-
- コマンド構文解説-モブがアクションを起こす!?/event, /mobevent-
- コマンド構文解説-あのモブのあのモーションを!?/playanimation-
- コマンド構文解説-何が起こるんだ!?PART1!/connect ( /wsserver ), /help ( /? ), /kick
- コマンド構文解説-何が起こるんだ!?PART2!/list, /locate, /schedule-
- コマンド構文解説-コマンドに革命を起こす…!?/function, /reload-
当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。
お気軽にコメント欄までどうぞ!
↓良ければポチッとお願いします。