コマンドでプレイヤーやMobを指定する時、例えば「name=名前」「score_スコア名=○」などの条件を決めて指定しますね。でも、いちいちMobの名前やスコア名を入力するのって面倒で、メンテナンスも大変…
そこで、tagコマンドを使いましょう。エンティティに「タグ」を付けて分類できるんです。 タグ付きでMobを召喚したり、複数タグの判定も可能。コマンドの仕掛け作りが劇的に楽になります!
tagは完全にスコアボードの代わりではなく、スコアボードと比べて様々なメリット・デメリットがあります「Tag」とは?
新機能「Tag」でエンティティやプレイヤーにタグを追加する方法
tagの追加
構文
/tag <ターゲット> add <タグ名>

/kill @e[tag=Shop]で、「Shop」タグを持っているエンティティをキルします。先ほどのコマンドで、「店員さん」には「Shop」タグが付いたので、ここで一気に殺せるわけです。
最初からタグを付けてMobを召喚すればとっても楽!

いちいちMobにタグを追加するのは面倒なので、最初からタグを付けて召喚してみましょう。
- 最初から「Shop」タグが付いた「店員さん」を召喚するコマンド
- /summon Villager ~ ~ ~ {Tags:["Shop"],CustomName:店員さん}
エンティティの新しいデータタグ「Tags」を使います。["タグ1","タグ2"]のように書くことで複数のタグを付けて召喚することも可能です。例えば「Shop」と「Town」ならTags:["Shop","Town"]と書くんです。
複数のタグを持っているプレイヤー/エンティティを指定する方法

Mobやプレイヤーにタグを何個も付けて、例えば「タグAとタグBをどちらも持っていると何か起きる」みたいな仕掛けを作る時はどうすればいいのでしょうか。答えは簡単。以下のように指定するんです。
- 「Zako」と「Dekabana」タグをどちらも持っている魔女を奈落へ落とすコマンド
- /execute as [type=Witch,tag=Zako,tag=Dekabana] run teleport ~ ~-300 ~
プレイヤー/エンティティに付いているタグを確認/削除するコマンド

プレイヤー/エンティティの持っているタグは、そのままでは見ることができませんが、コマンドを使えば対象のプレイヤー/エンティティのtag一覧をチャットログに表示させることができます。以下の構文でコマンドを実行しましょう。
- プレイヤー/エンティティの持っているタグを確認するコマンド
- /tag <ターゲット(@eなど)> list
また、タグは削除することもできます。
- プレイヤー/エンティティの持っているタグを削除するコマンド
- /tag <ターゲット> remove タグ名
この時、データタグを条件に削除できるので、例えば「着地したら削除」ならセレクタに[nbt={OnGround:true}]と付けます。コマンドの仕掛けに上手に組み込んで、より高度な仕掛けを作ってみましょう!
タグをつけたプレイヤーがハートが1になった時にキルしたいのですがどのようにすればいいのでしょうか
まずはHPをカウントするためのスコアボードを作成します。
/scoreboard objectives add HP health
これでプレイヤーのHPが「HP」というスコアボードに自動で代入されるようになりました。
次に以下のコマンドを常時実行します。
/kill @a[tag=タグ名,score_HP=2]
▲♥1つはHP”2″なので、スコア「HP」が2以下でさらにタグを持っている人をキルします。
指定したCustomName以外のエンティティをターゲットにすることはできるのでしょうか。
具体的には、{CustomName:p1}を付けた(p1のところはそれぞれp1〜p9)合計9体のアーマースタンドがあってp1にpAというタグを付け、p1以外のアーマースタンドからpAをremoveしたいのです。
そこでpAをremoveする対象を@e[name=!p1]としているのですがCustomNameで付けた名前は引数nameに引っかかるのでしょうか。
はい、!を付ければ否定の指定が可能です。
{CustomName:”test”}ってエンティティがいたとして、
/kill @e[name=!test]
とすればtest以外のエンティティをキルできます。
ご回答ありがとうございました。
アイテムにもTAGはつけられるのですか?(エンダーパールにつけたい
残念ながら、アイテムとして手に持った状態ではタグは付けられません。落ちているアイテムはエンティティなので付けられますが、拾うと消えます…
落ちているエンダーパールにタグを付ける場合は
/scoreboard players tag @e[type=Item] add tagName {Item:{id:”minecraft:ender_pearl”}}
で付けられます。
自分にはTAGを付けられますか?
/scoreboard players tag @p add {}
すいません。質問なのですが、tagにbossと付けているのですが、試しで/killのコマンドをtag指定しても機能しないのです@@;
環境はversion1.12
ボスに設定している物はこういう感じになっています。
/summon zombie -98 35 -190 {CustomName:”ソウルハント”,CustomNameVisible:1,Tags:[“boss”],ArmorItems:[{},{},{},{id:”minecraft:stained_glass”,Damage:14,Count:1b}],HandItems:[{id:”minecraft:stone_sword”,Count:1b,tag:{HideFlags:1,AttributeModifiers:[{AttributeName:”generic.maxHealth”,Name:”generic.maxHealth”,Amount:5,Operation:0,UUIDLeast:831139,UUIDMost:516829,Slot:”mainhand”},{AttributeName:”generic.movementSpeed”,Name:”generic.movementSpeed”,Amount:0.02,Operation:0,UUIDLeast:659859,UUIDMost:171926,Slot:”mainhand”},{AttributeName:”generic.attackDamage”,Name:”generic.attackDamage”,Amount:12,Operation:0,UUIDLeast:538483,UUIDMost:231999,Slot:”mainhand”},{AttributeName:”generic.attackSpeed”,Name:”generic.attackSpeed”,Amount:0.05,Operation:0,UUIDLeast:359298,UUIDMost:260009,Slot:”mainhand”}],Unbreakable:1,display:{Name:”ソウルディール”,Lore:[“魂を吸い尽くして、満たされて作られた剣”]},ench:[{id:34,lvl:1}]}},{id:”minecraft:flint”,Count:1b,tag:{HideFlags:1,display:{Name:”ディグの魂”,Lore:[“冒険者:ディグの魂”]},ench:[{id:34,lvl:1}]}}],ArmorDropChances:[0.085F,0.085F,0.085F,0.0F],HandDropChances:[0.055F,0.7F],Attributes:[{Name:generic.maxHealth,Base:80},{Name:generic.movementSpeed,Base:0.25},{Name:generic.attackDamage,Base:6},{Name:generic.followRange,Base:10},{Name:generic.knockbackResistance,Base:0.25},{Name:generic.armor,Base:3}],Health:160.0f}
そして、tag指定の/killcommandはこういう感じにしています。
/kill @e[tag=boss]
これでなぜかできないのですが…誰か原因分かりませんか??
アイテムにタグつけられた気が