マイクラの/clearコマンドは、プレイヤーのインベントリから特定のアイテムを削除できるコマンドです。対象プレイヤーの指定、対象アイテムの指定、削除数の上限の指定が可能。Java版・統合版どちらでも使えます。
/clearコマンドの基本的な使い方
マイクラの/clearコマンドの構文は以下のようになっています。
Java版
/clear [<targets>] [<item>] [<maxCount>]
統合版
/clear [player: target] [itemName: Item] [data: int] [maxCount: int]
「target」で対象プレイヤーを、「item」で削除するアイテムを、「maxCount」で削除する個数を指定します。チャット欄でのコマンド入力では、いずれも省略することが可能です。具体的な入力例を以下で紹介します。
すべてのアイテムを削除する
/clear
ターゲットやアイテムを指定せず/clearだけで実行すると、コマンド実行者の全アイテムが削除されます。/clearコマンドで削除したアイテムはもとに戻すことができないので、実行するときは十分に注意しましょう。
対象プレイヤーのアイテムを削除する
プレイヤー名やターゲットセレクターを入力すると、指定されたプレイヤーにだけ/clearコマンドを適用できます。指定できるのはプレイヤーのみ。村人やモンスターなどは指定できません。
例1:/clear nishi10
例2:/clear @p
例3:/clear @r
例4:/clear @a
例1のコマンドを実行するとプレイヤーnishi10の、例2を実行すると最も近いプレイヤーの、例3を実行すると誰か一人の(ランダム)、例4を実行すると全プレイヤーのアイテムがすべて削除されます。
アイテムを指定して削除する
ターゲットに続けてアイテムIDを指定すると、指定したアイテムだけを削除することができます。
/clear @s minecraft:stone
上記のコマンドを実行すると、コマンド実行者のインベントリから石だけがすべて削除されます。IDの「minecraft:」の部分は省略可能です。
個数を指定して削除する
個数を指定してアイテムを削除することもできます。Java版ではアイテムIDのあとに個数を入力します。統合版ではアイテムIDのあとにデータ値を入力し、そのあとに個数を入力します。
Java版
/clear @s minecraft:stone 16
統合版
/clear @s minecraft:stone 0 16
上記のコマンドを実行すると、コマンド実行者のインベントリから石が16個だけ削除されます。
データ値について
統合版で個数を指定するときは、データ値の入力が必須です。なぜそうなっているかというと、もともとIDを共有しているアイテムがいくつかあり、データ値で種類が区別されていたから。例えば丸太なら、次のようになっています。
ID | データ値 | アイテム |
---|---|---|
log | 1 | 樫の丸太 |
log | 2 | 樺の丸太 |
log | 3 | トウヒの丸太 |
現在のバージョンではoak_log、birch_log、spruce_logと個別のIDが割り当てられているので、そちらを使いましょう。clearコマンドなどでデータ値が必要な場合は、0や-1を指定しておけばOKです。
名前付きのアイテムを指定して削除する
Java版では、データタグでより細かくアイテムを指定することができます。例えば、次のように入力すると、特定エンチャントがついたアイテムだけ削除することができます。
/clear @s golden_sword{Enchantments:[{id:"minecraft:sharpness",lvl:1s}]}
上記のコマンドを実行すると、金の剣のうち、ダメージ増加Ⅰのついた金の剣だけが削除されます。
次のように入力すると、特定の名前がついたアイテムだけ削除することができます。
/clear @s golden_sword{display:{Name:'{"text":"伝説の剣"}'}}
上記のコマンドを実行すると、「伝説の剣」という名前のついた金の剣がインベントリから削除されます。
/clearコマンドをアイテム検知に使う
/clearコマンドは、指定したアイテムを持っていると成功し、指定したアイテムを持っていないと失敗します。そのため、削除数を0にして実行することで、該当アイテムを持っているかどうかの判定に利用できます。
アイテムを持っているときだけコマンド実行
1つ目のコマンドブロックに/clearコマンドを設定し、2つ目のコマンドブロックを「チェーン・条件付き」で設置すると、該当アイテムを持っているときだけ2つ目のコマンドブロックを動かすことができます。例えばJava版では、次のように設定します。
Java:1つ目のコマブロ(リピート、無条件、動力が必要)
clear @p diamond 0
Java版:2つ目のコマブロ(チェーン、条件付き、常時実行)
effect give @p minecraft:jump_boost 1
統合版では、次のようにコマンドを設定します。
統合版:1つ目のコマブロ(反復、無条件、レッドストーンが必要)
clear @p diamond 0 0
統合版:2つ目のコマブロ(チェーン、条件付き、常にアクティブ)
effect @p jump_boost 1
上記のように設定し、1つ目のコマンドブロックにつけたレバーをONにします。すると、もっとも近くにいるプレイヤーがダイヤモンドを持っているときに、跳躍力上昇のステータス効果が付与され続けます。ダイヤモンドを手放したときは、1秒後にステータス効果が消えます。
他のコマンドを使う方法
統合版では/excuteコマンドのhasitemを使うと、1つのコマンドブロックで同じことができます。
統合版:リピート、無条件、レッドストーンが必要
execute as @p[hasitem={item=diamond}] run effect @p jump_boost 1
effectコマンドを実行するなら、Java版だと次のコマンドでも同じことができます。
Java版:リピート、無条件、動力が必要
effect give @p[nbt={Inventory:[{id:"minecraft:diamond"}]}] jump_boost 1
アイテムを持っているときにRS信号をONに
コマンドブロックのコマンドが成功すると、コンパレーターでレッドストーン信号を取り出すことができます。/clearコマンドを設定しておけば、特定のアイテムを持っているときにだけレッドストーン回路がONになるスイッチが作れます。
リピートコマンドブロックにレバーを設置し、コンパレーターをつなぎます。コマンドブロックには以下のコマンドを設定します。
Java版:リピート、無条件、動力が必要
clear @p diamond 0
統合版:反復、無条件、レッドストーンが必要
clear @p diamond 0 0
ダイヤモンドを持っているときにだけ、コンパレーターがONになります。
以上、マイクラの/clearコマンドの基本的な使い方と、アイテムの所持を検知する方法の紹介でした。単にアイテムを消すだけでなく、条件をつけてアイテムを削除したり、アイテムの所持を検知したりできるコマンドです。いろいろ応用できるので、使い方を考えてみてください。マイクラの他のコマンドについては以下のページで紹介してるので、ぜひそちらも合わせてチェックしてみてください。
1.20.4では名前付きが動かない?