/replaceitem - インベントリ内のアイテムを置き換える
ブロック・エンティティのインベントリ内のアイテム を置き換え ます。
チェストの中にアイテムを入れたり、プレイヤーの装備を変更したりできるとても使い勝手の良いコマンドです。
特定のスロット位置に/give
や/clear
を行うと考えてください。
書き方は大きく分けて次の2種類があります。
- ブロックのインベントリを置き換える
- エンティティのインベントリを置き換える
とは言っても「ブロックの場合は座標で選ぶ」「エンティティの場合はターゲットセレクタで選ぶ」の部分だけ異なり他は共通なので覚えることは多くありません。
ブロックのインベントリ
まずはブロックのインベントリの操作から始めましょう。
例文
/replaceitem block <対象ブロックの座標> slot.container <スロット番号> <アイテム情報>
チェストやタルなどのブロックが持っているインベントリ内のアイテムを操作します。 エンダーチェストやチェスト付きトロッコなどはエンティティ側で操作します。
# (0, 64, 0)にチェストを置く
/setblock 0 64 0 chest
# そのチェストの中に羊毛を入れる
/replaceitem block 0 64 0 slot.container 0 wool
/replaceitem block
ブロックモードで使用するという意味です。
最初で説明した通り、他にエンティティモードがあります。
0 64 0
どの座標にあるブロックなのかを指定します。
目的のブロックがある座標を選んでください。
slot.container
スロットの型です。
ブロックモードの場合、スロットの型はこの1つしかないので固定でこの値を入れてください。
0
そのインベントリのスロット番号です。
インベントリの何番目のスロットなのかを指定します。
wool 3 0
そのスロットに入れるアイテム情報です。この場合は「白の羊毛3つ」になります。
詳しくは/giveの記事を読んでください。
スロット番号
スロット番号は0から数え始めることに注意してください。(プログラムではよく0から数え始めます) 通常のチェストは27スロットなので0~26まで指定できます。1~26で26個、それに0の分を足して全部で27個です。もしこの範囲以外の数字を入力した場合はエラーになります。
# チェストの26番目のスロットに羊毛を入れる
/replaceitem block 0 64 0 slot.container 26 wool 1 1
スロット番号を0から26に変えました。通常チェストであれば最後の位置になるので右下にアイテムが入っていれば成功です。 このようにスロット番号を変えると、番号に合わせてアイテムの入る位置が変わります。
# チェストの8番目(右上)のスロットに羊毛を入れる
/replaceitem block 0 64 0 slot.container 8 wool 1 2
# チェストの18番目(左下)のスロットに羊毛を入れる
/replaceitem block 0 64 0 slot.container 18 wool 1 3
# チェストの13番目(真ん中)のスロットに羊毛を入れる
/replaceitem block 0 64 0 slot.container 13 wool 1 4
すでにアイテムがあれば上書きされる
# 同じスロット番号にすると上書きされる
/replaceitem block 0 64 0 slot.container 26 planks
すでにそのスロットにアイテムがある場合、元のアイテムは消えて新しいアイテムで上書きされます。
# 同じスロット番号にすると上書きされる
/replaceitem block 0 64 0 slot.container 0 air
空気ブロックを指定するとアイテムを消すことができます。
エンティティのインベントリ
例文
/replaceitem entity <対象エンティティ> <スロット型> <スロット番号> <アイテム名>
プレイヤーを含むエンティティのインベントリを操作します。
# すべてのプレイヤーにエリトラを装備させる
/replaceitem entity @a slot.armor.chest 0 elytra
/replaceitem entity
エンティティモードで使用します。
@a
対象エンティティを選びます。この場合はすべてのプレイヤーです。
エンティティモードの時は座標ではなくターゲットセレクタになります。
slot.armor.chest
スロットの型です。エンティティモードの場合は様々な箇所が指定でき、この場合は胴装備です。
他のスロット型は下の一覧を見て下さい。
0
スロット番号です。装備のように1つのスロットしかなくても必ず入力してください。
elytra
アイテム情報です。この場合はエリトラです。
装備欄にはその箇所に合ったアイテムしか指定できません。
スロットの型
エンティティモードにはスロット型の種類がたくさんあり、エンティティによって指定できるスロットの型が異なります。目標のエンティティに合わせて適切なスロット型を選びましょう。
またスロットの型によって指定できるスロット番号も異なります。 装備欄などスロットが1つしか無い場合は0以外のスロット番号を指定しても同じ結果になりますが、スロットを2つ以上を持つ場合はその範囲を超えて指定するとエラーになります。
スロット型一覧
スロット型 | スロット番号 | 場所 | 対象エンティティの種類 |
---|---|---|---|
slot.armor.head |
0 | 防具/頭 | プレイヤー 装備できるモブ 防具立て |
slot.armor.chest |
0 | 防具/胴 | |
slot.armor.legs |
0 | 防具/脚 | |
slot.armor.feet |
0 | 防具/足 | |
slot.weapon.mainhand |
0 | 右(利き手)/選択中のスロット | |
slot.weapon.offhand |
0 | 左(利き手の逆)スロット | |
slot.enderchest |
0~26 | エンダーチェスト | プレイヤー |
slot.hotbar |
0~8 | ホットバー | |
slot.inventory |
0~26 | インベントリ | プレイヤー チェスト付きトロッコ |
0~7 | 村人のインベントリ | 村人 | |
slot.saddle |
0 | 鞍(サドル) (豚とストライダーはスロット装備では無い) |
馬・ラバ |
slot.armor |
0 | 馬の鎧・ラマのカーペット | 馬・ラマ |
slot.chest |
0~14 | ラバなどに付けたチェスト | ラバ・ラマ |
アイテムがあれば置き換えない
スロット番号とアイテム情報の間に置き換え方法を入れることができます。
destory
: (そのスロットにアイテムがあれば) それを壊し て上書き(初期値)keep
: (そのスロットにアイテムがあれば) それを残し て置き換えない
destory
の場合は初期値なので、入力する必要はありません。keep
を選びたい場合のみ追記してください。destory
は「何か持っていてもムリヤリ置き換えるぞ」という意味を持たせたい場合には書くことがあります。
使用例
# その箇所に何も装備していなければ革装備を与える
/replaceitem entity @p slot.armor.head 0 keep leather_helmet
/replaceitem entity @p slot.armor.chest 0 keep leather_chestplate
/replaceitem entity @p slot.armor.legs 0 keep leather_leggings
/replaceitem entity @p slot.armor.feet 0 keep leather_boots
この場合は何か他の装備をしていればそれが残るので、どんな箇所で使っても最低限の装備をくれる良い影響に見えます。
# すべての箇所を革装備で置き換える
/replaceitem entity @p slot.armor.head 0 destroy leather_helmet
/replaceitem entity @p slot.armor.chest 0 destroy leather_chestplate
/replaceitem entity @p slot.armor.legs 0 destroy leather_leggings
/replaceitem entity @p slot.armor.feet 0 destroy leather_boots
この場合はゲーム開始時に使うと初期装備の統一として使えます。 しかしゲーム中に使うと良い装備を上書きされてしまうことがあるので悪い影響になる場合もあります。
いずれにしてもdestroy
と書いてあることで、開発者がムリヤリ置き換えることを意図していることがわかります。もし何も書いていなかったらkeep
のような意味で使いたかった可能性があります。その場合、良い装備が置き換わってしまったらバグということになります。