Datapakのコマンドで必須となるターゲットセレクターの種類・引数・使用例を一覧にまとめます。
対応バージョン:Java Edition 1.21.11
目次
ターゲットセレクターの種類
ターゲットセレクターは@から始まる記号で、コマンドの対象を指定するために使います。
| セレクター | 対象 | 備考 |
|---|---|---|
@p | 最も近いプレイヤー | 実行者から距離順で1人 |
@r | ランダムなプレイヤー | 引数なしでプレイヤーのみ対象 |
@a | すべてのプレイヤー | オフラインのプレイヤーは含まない |
@e | すべてのエンティティ | プレイヤー・Mob・アイテムなど全種 |
@s | コマンドの実行者自身 | 関数・コマンドブロックで多用 |
@n | 最も近いエンティティ | 1.21.2以降。実行者自身も対象になる |
セレクター引数一覧
引数は@e[引数=値, 引数=値]の形式で指定します。複数指定はカンマ区切りです。
| 引数 | 型 | 説明 | 例 |
|---|---|---|---|
type | エンティティID | エンティティの種類で絞り込む。!で否定 | type=zombie |
distance | 数値 / 範囲 | 実行地点からの距離(ブロック) | distance=..10 |
limit | 整数 | 対象の最大数を制限する | limit=1 |
sort | nearest / furthest / random / arbitrary | 対象の並び順を指定 | sort=nearest |
tag | 文字列 | タグで絞り込む。!で否定、複数指定可 | tag=boss |
team | 文字列 | チーム名で絞り込む。!で否定 | team=red |
scores | {スコア=範囲} | スコアボードの値で絞り込む | scores={point=10..} |
name | 文字列 | エンティティ名で絞り込む。!で否定 | name=Steve |
gamemode | モード名 | ゲームモードで絞り込む(プレイヤーのみ) | gamemode=creative |
level | 整数 / 範囲 | 経験値レベルで絞り込む(プレイヤーのみ) | level=30.. |
x, y, z | 数値 | 距離計算の基準座標を変更する | x=0,y=64,z=0 |
dx, dy, dz | 数値 | x/y/zからの直方体範囲内に絞り込む | dx=10,dy=5,dz=10 |
x_rotation | 範囲 | ピッチ(上下の向き)で絞り込む | x_rotation=-90..0 |
y_rotation | 範囲 | ヨー(左右の向き)で絞り込む | y_rotation=-45..45 |
nbt | NBT複合タグ | NBTデータで絞り込む。!で否定 | nbt={OnGround:1b} |
predicate | 関数ID | Predicateファイルの結果で絞り込む | predicate=ns:check |
advancements | {進捗ID=true/false} | 進捗の達成状況で絞り込む | advancements={story/root=true} |
使用例
半径10ブロック以内のゾンビを全員Kill
kill @e[type=zombie,distance=..10]
スコア「point」が10以上のプレイヤーにタグを付与
tag @a[scores={point=10..}] add qualified
タグ「boss」を持つエンティティだけを対象にパーティクルを出す
execute at @e[tag=boss] run particle minecraft:flame ~ ~1 ~ 0 0 0 0 1 force
ゾンビ以外のすべてのMobをリストアップ(tellraw例)
tellraw @a {"selector":"@e[type=!zombie,limit=1,sort=nearest]"}
実行者を除くプレイヤー全員にメッセージを送る
execute as @a[tag=!self] run tellraw @s "あなた以外に送られたメッセージです"
よくある間違い
@e に limit を付けないと全エンティティが対象になる
NG:kill @e[type=item] → ワールド中のアイテムエンティティが全削除される
OK:kill @e[type=item,distance=..5] → 範囲を絞って意図した挙動にする
sort と limit の組み合わせを忘れる
@e[sort=nearest] だけでは対象は絞られない。limit=1 を必ず組み合わせること。
@r はプレイヤーのみが対象
Mob からランダムに1体選びたい場合は @e[type=zombie,limit=1,sort=random] を使う。@r[type=zombie] は動作しない。
