痒いところに手が届くかもしれないMinecraftコマンド早引き集（日々？更新）

日が経つとどんどん成長していく記事になる予定ですが更新頻度は遅いです。（初版2020/10/8、最終更新日2021/1/24）
目次や書式や分類もそのうち整理して進化していき素晴らしい用途別辞書に成長していく予定。（希望）

#目次
[はじめに](#はじめに)
　[内容](#内容)
　[本記事を読むにあたって](#本記事を読むにあたって)
[give関連](#give関連)
　[コマンドブロックを入手する](#コマンドブロックを入手する)
　[最強の剣を入手する](#最強の剣を入手する)
　[最強のヘルメットを入手する](#最強のヘルメットを入手する)
[tellraw関連](#tellraw関連)
　[色付き文字で発言する](#色付き文字で発言する)
　[エンティティの名前を発言する](#エンティティの名前を発言する)
　[エンティティのスコアを発言する](#エンティティのスコアを発言する)
　[エンティティのデータタグを発言する](#エンティティのデータタグを発言する)
　[左クリックするとコマンドを実行するテキストを発言する](#左クリックするとコマンドを実行するテキストを発言する)
　[左クリックするとブラウザを開くテキストを発言する](#左クリックするとブラウザを開くテキストを発言する)
[tp関連](#tp関連)
　[スーパーフラットで地面に着地する](#スーパーフラットで地面に着地する)
　[tpコマンドでプレイヤーの座標を調べる](#tpコマンドでプレイヤーの座標を調べる)
　[防具立てを一歩前進させる](#防具立てを一歩前進させる)
　[防具立てをY軸で回転させる](#防具立てをy軸で回転させる)
　[防具立てをX軸で回転させる](#防具立てをx軸で回転させる)
　[防具立てを中心に水平方向に5マス離れた場所に村人をテレポートさせて円を描く](#防具立てを中心に水平方向に5マス離れた場所に村人をテレポートさせて円を描く)
　[防具立てを自分が向いている方向に向ける](#防具立てを自分が向いている方向に向ける)
　[防具立てを自分に向ける](#防具立てを自分に向ける)
[setblock関連](#setblock関連)
　[自分の足元のブロックを砂にする](#自分の足元のブロックを砂にする)
[summon関連](#summon関連)
　[村人を召喚する：自分が立っている場所に](#村人を召喚する自分が立っている場所に)
　[村人を召喚する：自分の目の前に](#村人を召喚する自分の目の前に)
　[村人を召喚する：「村人A」という名前の村人](#村人を召喚する村人aという名前の村人)
　[村人を召喚する：１歩も動かない子供](#村人を召喚する１歩も動かない子供)
　[強いゾンビを召喚する](#強いゾンビを召喚する)
　[ゾンビをおんぶしたゾンビをおんぶしたゾンビを召喚する](#ゾンビをおんぶしたゾンビをおんぶしたゾンビを召喚する)
　[矢が刺さった場所に雷を落とす](#矢が刺さった場所に雷を落とす)
　[矢に撃たれたMobに雷を落とす](#矢に撃たれたmobに雷を落とす)
[kill関連](#kill関連)
　[プレイヤー以外をkillする](#プレイヤー以外をkillする)
　[地面に落ちた矢を消す](#地面に落ちた矢を消す)
[scoreboard関連](#scoreboard関連)
　[スコアの作成](#スコアの作成)
　[スコアの初期化](#スコアの初期化)
　[スコアの加算](#スコアの加算)
　[スコアの減算](#スコアの減算)
　[スコアとスコアの計算](#スコアとスコアの計算)
　[最大最小のスコアを検索](#最大最小のスコアを検索)
　[スコアがXのプレイヤーを選択する](#スコアがxのプレイヤーを選択する)
　[右クリック検知](#右クリック検知)
　[左クリック検知](#左クリック検知)
[data関連](#data関連)
　[dataコマンドでプレイヤーの座標を調べる](#dataコマンドでプレイヤーの座標を調べる)
　[クロスボウの攻撃力を上げる](#クロスボウの攻撃力を上げる)
[execute関連](#execute関連)
　[エンティティの数を数えてスコアに結果を代入する](#エンティティの数を数えてスコアに結果を代入する)
　[高さYの鉱石の数を数える](#高さyの鉱石の数を数える)
[まとめ](#まとめ)

#はじめに
##内容
Minecraft のコマンドを勉強したい訳ではなく「今すぐ使いたいんです。」という人に向けた、痒いところに手が届く早引き集になる予定です。
本当は勉強してもらいたいですが、使ってるうちに覚えることもありますからね。
役に立ったら心の中でリスペクトしながら良いねボタンを押して下さい。

##本記事を読むにあたって
ここに書かれているコマンドのほとんどはコピー＆ペーストをしてもらえれば動きますが、キャラクターの名前やスコア名などは適宜自分の環境にあわせて置き換えて下さい。
また以下３つのコマンドを知っていると記事を読みやすくなるため最初に紹介しておきます。
プレイヤー名などを指定する__ターゲットセレクタ__（@a、@e など）については執筆中なので雰囲気で読んで下さい。

- 指定したプレイヤーの代わりにコマンドを実行する

```
execute as プレイヤー名等 run 実行したいコマンド
```

- 指定したプレイヤーの座標に立ったつもりでコマンドを実行する

```
execute at プレイヤー名等 run 実行したいコマンド
```

- 指定したプレイヤーの代わりにその座標に立ったつもりでコマンドを実行する

```
execute as プレイヤー名等 at @s run 実行したいコマンド
```

それでは良いコマンドライフをお送りください。

#give関連
プレイヤーにアイテムを渡すコマンド。

##コマンドブロックを入手する
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　give @s minecraft:command_block
説明
　コマンドブロックを１つ入手する。
　
##最強の剣を入手する
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　give @s minecraft:netherite_sword{display:{Name:"\"エクスカリバー\"",Lore:["\"アーサー王が持つとされる伝説の剣\""]},Enchantments:[{id:smite,lvl:5},{id:fire_aspect,lvl:2},{id:looting,lvl:3},{id:sweeping,lvl:3},{id:unbreaking,lvl:3},{id:mending,lvl:1}]} 1
説明
　・アンデット特攻Ⅴ（id:smite,lvl:5）
　・火属性Ⅱ（id:fire_aspect,lvl:2）
　・ドロップ増加Ⅲ（id:looting,lvl:3）
　・範囲ダメージ増加Ⅲ（id:sweeping,lvl:3）
　・耐久力Ⅲ（id:unbreaking,lvl:3）
　・修繕（id:mending,lvl:1）
　が付いたネザライトの剣を入手する。
　エンチャントは、Enchantments:[{},{},・・・,{}]の形式でいくつでも並べることができる。
　チャット欄の文字数は256文字までなので、エンチャントを多くつけたい場合はコマンドブロックにコマンドを入力しよう。

##最強のヘルメットを入手する
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　give @s minecraft:netherite_helmet{display:{Name:"\"最強のヘルメット\"",Lore:["\"つよーい。\""]},Enchantments:[{id:protection,lvl:4},{id:respiration,lvl:3},{id:aqua_affinity,lvl:1},{id:unbreaking,lvl:3},{id:mending,lvl:1}]} 1
説明
　・ダメージ軽減Ⅳ（id:protection,lvl:4）
　・水中呼吸Ⅲ（id:respiration,lvl:3）
　・水中採掘（id:aqua_affinity,lvl:1）
　・耐久力Ⅲ（id:unbreaking,lvl:3）
　・修繕（id:mending,lvl:1）
　が付いたネザライトの兜を入手する。
　エンチャントは、Enchantments:[{},{},・・・,{}]の形式でいくつでも並べることができる。
　チャット欄の文字数は256文字までなので、エンチャントを多くつけたい場合はコマンドブロックにコマンドを入力しよう。

#tellraw関連
指定した対象に向かって発言する。対象以外には聞こえない。
発言するテキストには様々なイベントを付ける（イベントフックする）ことができ、コマンドを実行したり、ブラウザを開いたりもできる。
これらの一部は tellraw コマンドだけではなく title コマンドや「記入済みの本」や「看板」のテキストでも利用できる。

##色付き文字で発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @a [{"text":"This color is "},{"text":"Red","color":"red"},{"text":"."}]
説明
　「This color is Red.」と発言する。Red という文字だけ赤色（red）になる。

##エンティティの名前を発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @a [{"selector":"@s"}]
　tellraw @a [{"selector":"@e[type=armor_stand,limit=1]"}]
説明
　指定したターゲットセレクタの名前を発言する。

##エンティティのスコアを発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @a [{"score":{"name":"@s","objective":"スコア名"}}]
説明
　指定したターゲットセレクタのスコアを発言する。

##エンティティのデータタグを発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @a {"entity":"@s","nbt":"UUID[0]"}
説明
　指定したターゲットセレクタのデータタグを発言する。

##左クリックするとコマンドを実行するテキストを発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @s [{"text":">>> CLICK <<<","color":"red","clickEvent":{"action":"run_command","value":"/tag @s add test"}}]
説明
　「>>> CLICK <<<」というテキストを発言し、そのテキストを左クリックするとコマンドを実行させることができる。
　ここでは「/tag @s add test」というコマンドを実行している。

##左クリックするとブラウザを開くテキストを発言する
[Java]（1.16.4で検証済み）（2021/1/3更新）
コマンド
　tellraw @a {"text":">>> CLICK <<<","color":"red","clickEvent":{"action":"open_url","value":"https://www.google.com/"}}
説明
　「>>> CLICK <<<」というテキストを発言し、そのテキストを左クリックするとブラウザで指定した URL を開かせることができる。
　ここでは「www.google.com」をブラウザで開いている。

#tp関連
エンティティを瞬間移動させたり回転させるコマンド。
厳密には瞬間では移動できず、少しラグがある。

##スーパーフラットで地面に着地する
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　tp @s ~ 4 ~
説明
　スーパーフラットでクリエイティブ作業してるときに空中に飛び上がりすぎて困ったときに使うと着地する。

##tpコマンドでプレイヤーの座標を調べる
[Java]（1.16.3で検証済み）（2020/10/8更新）
コマンド
　execute as プレイヤー名 at @s run tp @s ~ ~ ~
　execute as @e[type=minecraft:villager] at @s run tp @s ~ ~ ~　←村人全員
説明
　調べたいプレイヤーやエンティティ（上記は村人）などの現在地をチャット欄に表示する。
　動いている時に使うと一瞬停止するかもしれないが、動いているので特に影響はないであろう。tpコマンドを直接使うと目の前にプレイヤーを移動させてしまうため、必ず上記のようにexecuteコマンドの後に繋げて使いましょう。より安全な[dataコマンドを使う方](#data関連)も下に紹介しておきます。

##防具立てを一歩前進させる
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s run tp ^ ^ ^1
説明
　防具立てを１歩前進させる。

##防具立てをY軸で回転させる
[Java]（1.16.3で検証済み）（2020/10/21更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s run tp @s ~ ~ ~ ~1 ~
説明
　防具立ての向いている方向をY軸を基準（横を振り向くという意味）に時計回りに1度回転させる。
　角度は -180 度 ～ 180 度までで、180 度は -180 度と繋がっており、上記コマンドをリピートで実行すると永遠に回り続ける。
　※バージョンによって異なるようで、1.16.4 現在は 0 度～ 360 度までで、0 度と 360 度が繋がっている。(2021/1/3)

##防具立てをX軸で回転させる
[Java]（1.16.3で検証済み）（2020/10/21更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s run tp @s ~ ~ ~ ~ ~1
説明
　防具立ての向いている方向をX軸を基準（頷くという意味）に1度回転させる。
　角度は-90度～90度までで、90度は下向き、-90度は上向きであり、上記コマンドをリピートで実行すると下向きで止まる。
　なお画面の見た目としては縦方向に回転しないため、防具立ての目の前に何かを召喚させる、などしないと頷いているかどうかは分からない。

##防具立てを中心に水平方向に5マス離れた場所に村人をテレポートさせて円を描く
[Java]（1.16.3で検証済み）（2020/10/21更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s run tp @s ~ ~ ~ ~1 ~
　execute as @e[type=minecraft:armor_stand] at @s run tp @e[type=minecraft:villager] ^ ^ ^5 ~ ~
説明
　[防具立てをY軸で回転させ](#防具立てをy軸で回転させる)ながら、防具立ての5マス前に村人をテレポートさせる続けることで、防具立てを中心に時計回りで回転する村人を表現できる。

##防具立てを自分が向いている方向に向ける
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s rotated as @a[name=JohnikiJoestar] run tp ^ ^ ^
説明
　防具立てを自分が向いている方向（rotated as）に向ける。

##防具立てを自分に向ける
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　execute as @e[type=minecraft:armor_stand] at @s facing entity @a[name=JohnikiJoestar] feet run tp ^ ^ ^
説明
　防具立てを自分に向ける（facing entity）。このとき自分の足下に向けるか、目線に向けるかを選択できる。at のオプションは防具立ての足下をスタート地点とするコマンドであるため、feet を指定すると防具立てと自分の足下の高さが同じならまっすぐ前方見ることになる。eyes を指定すると防具立ての足下から自分の目線を見上げることになるため少し上を向いてしまう。通常は feet を指定しておけば良い。

#setblock関連
指定した場所にブロックを１つ置く。

##自分の足元のブロックを砂にする
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　execute unless block ~ ~-1 ~ minecraft:air as @a at @s run setblock ~ ~-1 ~ minecraft:sand
　execute unless block ~ ~-1 ~ minecraft:air unless block ~ ~-1 ~ minecraft:cave_air as @a at @s run setblock ~ ~-1 ~ minecraft:sand
　execute unless block ~ ~-1 ~ #myblocks:air as @a at @s run setblock ~ ~-1 ~ minecraft:sand
説明
　自分の足元に空気ブロック以外があった場合に砂ブロックに変える。（１つ目のコマンド）
　空気ブロックには地表の空気、洞窟の空気、奈落の空気の３種類あるため、全てを対象とする場合には unless 構文を繋げて書くか（２つ目のコマンド）、または、datapack を利用して空気ブロックを自分で定義する（３つ目のコマンド）必要がある。

#summon関連
エンティティを指定した場所に召喚する。
詳細なパラメータを指定すれば落下している任意のアイテムなども召喚できる。

##村人を召喚する：自分が立っている場所に
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:villager
　summon minecraft:villager ^ ^ ^
　summon minecraft:villager ~ ~ ~
説明
　自分がいる場所に村人を召喚する。

##村人を召喚する：自分の目の前に
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:villager ^ ^ ^1
説明
　自分の１歩目の前に村人を召喚する。
　下を向いていると地面にめり込むこともある。

##村人を召喚する：「村人A」という名前の村人
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:villager ^ ^ ^1 {CustomName:"\"村人A\""}
説明
　自分の１歩前に「村人A」という名前の村人を召喚する。

##村人を召喚する：１歩も動かない子供
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:villager ~ ~ ~ {CustomName:"\"村人A\"",NoAI:1b,Age:-32768s}
説明
　動かない子供の村人を召喚する。
　1600秒ほどで大人になってしまうので、子供のままにしたい場合は定期的に data コマンドで年齢を変える必要がある。

##強いゾンビを召喚する
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:zombie ~ ~ ~ {HandItems:[{Count:1,id:netherite_sword,tag:{display:{Name:"\"伝説の剣\"",Lore:["\"つよいよ。\""]},Enchantments:[{id:sharpness,lvl:5}]}},{Count:1,id:shield,tag:{display:{Name:"\"普通の盾\"",Lore:["\"ふつうだよ。\""]},Enchantments:[{id:unbreaking,lvl:3}]}}],ArmorItems:[{},{},{},{Count:1,id:netherite_helmet,tag:{display:{Name:"\"伝説の兜\"",Lore:["\"つよいよ。\""]},Enchantments:[{id:protection,lvl:4}]}}],CustomName:"\"私の名前はゾンビ\"",HandDropChances:[0.9f,0.8f],ArmorDropChances:[0.0f,0.0f,0.0f,0.7f],ActiveEffects:[{Id:5,Amplifier:1,Duration:10000},{Id:10,Amplifier:1,Duration:10000}]}
説明
　色々オプションが付いたゾンビを召喚する。詳細はNBTについて勉強してね。
　256文字以上のコマンドはコマンドブロックで実行してください。
　以下は参考。
　・HandItems:[右手装備の説明,左手装備の説明]
　・ArmorItems:[靴の説明,レギンスの説明,鎧の説明,兜の説明]
　・CustomName:"\"私の名前はゾンビ\""
　・HandDropChances:[右手装備のドロップ率,左手装備のドロップ率]
　・ArmorDropChances:[靴のドロップ率,レギンスのドロップ率,鎧のドロップ率,兜のドロップ率]
　・ActiveEffects:[ステータス効果,ステータス効果,・・・,ステータス効果]}

##ゾンビをおんぶしたゾンビをおんぶしたゾンビを召喚する
[Java]（1.16.3で検証済み）（2020/10/17更新）
コマンド
　summon minecraft:zombie ~ ~ ~ {CustomName:"\"私が一番下です。\"",Passengers:[{id:"minecraft:zombie",CustomName:"\"私が真ん中です。\"",Passengers:[{id:"minecraft:zombie",CustomName:"\"私が一番上です。\""}]}]}
説明
　ゾンビをおんぶしたゾンビをおんぶしたゾンビを召喚する。NBTのPassengersを入れ子にすることで何匹でもおんぶできる。
　入れ子の一番外側が一番下、入れ子の一番内側が一番上のMobとなる。

##矢が刺さった場所に雷を落とす
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　execute as @e[type=minecraft:arrow,nbt={inGround:1b}] at @s run summon minecraft:lightning_bolt ~ ~ ~
使い方
　コマンドブロックの設定をリピートにし、常時実行させるのがお勧めです。
説明
　矢が刺さった場所に雷を落とす。
　矢を消さないと雷が撃たれ続けてワールドが重くなるため、必ず[矢を消すコマンド](#地面に落ちた矢を消す)や矢の寿命を確認しながら使うこと。

##矢に撃たれたMobに雷を落とす
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　execute as @e[nbt={HurtTime:10s}] at @s run summon minecraft:lightning_bolt ~ ~ ~
使い方
　コマンドブロックの設定をリピートにし、常時実行させるのがお勧めです。
説明
　矢に撃たれたMobに雷が落ちる。
　正確には殴られてダメージを受けたMobです。（10/14追記）

#kill関連
##プレイヤー以外をkillする
[Java]（1.16.3で検証済み）（2020/10/21更新）
コマンド
　kill @e[type=!minecraft:player]
説明
　プレイヤー以外のエンティティをkillする。

##地面に落ちた矢を消す
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　kill @e[type=minecraft:arrow,nbt={inGround:1b}]
　kill @e[type=minecraft:arrow,nbt={inGround:1b,life:1s}]
使い方
　コマンドブロックの設定をリピートにし、常時実行させるのがお勧めです。
説明
　地面に落ちた矢を消す。nbtのlifeを使うことで消す時間を遅延させる（1sで0.05秒）ことができる。

#scoreboard関連
数学でいうところの変数 X のような数字の入れ物を作る。
死んだ回数やアイテムを使った回数のように自動で計算されるものや、自分で計算するもの（dummy）がある。

##スコアの作成
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　scoreboard objectives add スコア名 dummy
使い方
　スコアボードを使うときに最初に実行する。
説明
　数学でいう変数 X みたいなものを作る。スコアの名前は自分の好きなようにつける。
　dummy の箇所は dummy 以外の条件も色々あるが、詳細は [wiki](https://minecraft-ja.gamepedia.com/%E3%82%B9%E3%82%B3%E3%82%A2%E3%83%9C%E3%83%BC%E3%83%89) を参照。
　dummy の箇所を変えると死んだら自動で１増える変数 X などを作ることができる。
　dummy の場合は自分で頑張って足したり引いたりすることになる。

##スコアの初期化
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard players set プレイヤー名 スコア名 0
　scoreboard players set @e[type=armor_stand,name=名前] スコア名 0
　scoreboard players set AIUEO スコア名 0
使い方
　スコアを作成した後で使う。
説明
　作成したスコアに好きな数字を代入する。スコアはプレイヤーやMobと紐づいているので、どのプレイヤーのスコアなのか指定する必要がある。ターゲットセレクタ（@eや@aなど）で指定できるものはほぼ何でもスコアを設定できる。
　存在しないプレイヤー名を指定することもできる。

##スコアの加算
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard players add プレイヤー名 スコア名 数値
説明
　スコアを加算する。負の数を加算した場合は減算となる。

##スコアの減算
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard players remove プレイヤー名 スコア名 数値
説明
　スコアを減算する。負の数を減算した場合は加算となる。

##スコアとスコアの計算
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard players operation プレイヤー名 スコア名 演算子 プレイヤー名 スコア名
説明
　２つのスコアを計算した結果を１つ目のスコアに入れる。四則演算に加えて、剰余算(%=)、代入(=)、交換(><)、より小さい値の検索(<)、より大きい値の検索(>)ができる。ログインしていないプレイヤーも指定できる。

##最大最小のスコアを検索
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard players operation ターゲットセレクタ スコア名 < @a 最小値を調べたいスコア名
　scoreboard players operation ターゲットセレクタ スコア名 > @a 最大値を調べたいスコア名
説明
　検索対象を @a などの複数人とすることで、その中から最大／最小のスコアを調べることができる。
　@a に条件を付けて検索対象を徐々に狭めることで、次の最大値、その次の最大値とランキングを調べることもできる。

##スコアがXのプレイヤーを選択する
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　tellraw @a[scores={スコア名=..10}] "あなたのスコアは10以下です。"
　execute as @a[scores={スコア名=..10}] run say "わたしのスコアは10以下です。" 
説明
　ターゲットセレクタを使う際にスコアの値に合致するプレイヤーやエンティティを対象や実行者としてコマンドを実行する。

##右クリック検知
[Java]（1.16.4で検証済み）（2021/1/2更新）
コマンド
　scoreboard objectives add bRightClicked minecraft.used:minecraft.carrot_on_a_stick
　execute as @a[scores={bRightClicked=1}] at @s run 実行したいコマンド
　scoreboard players set @a bRightClicked 0
説明
　１つ目のコマンドで右クリック検知用のスコアを作る。検知方法は「ニンジン付きの棒」を使ったかどうかとしている。
　２つ目のコマンドで「ニンジン付きの棒」の使用回数が１かどうかを調べ、１であればコマンドを実行する。
　３つ目のコマンドでスコアを０にする。
　使う際は２つ目と３つ目のコマンドを繰り返し実行しておけばよい。
　「ニンジン付きの棒」以外にもエンダーパールや釣り竿や村人など右クリックを検知する方法は色々ある。

##左クリック検知
[Java]（1.16.4で検証済み）（2021/1/24更新）
コマンド
　（コツがいるので概要のみ）
　①minecraft.custom:minecraft.damage_dealt 用のスコアを用意
　②プレイヤーがいる座標から離れた場所に適当な Mob を召喚、村人でも可
　　※召喚時にプレイヤーとの衝突判定は無くしておくこと
　　　溶岩等で死なないように HP やデータタグを調整しておくこと
　③召喚した Mob を透明化（防具立て以外の透明化反映は 1tick かかる）
　④透明化から 1tick 遅延後にプレイヤーと同じ場所に Mob をテレポート
　　※テレポート中に窒息ダメージを受けていると左クリック検知できないため注意
　　　常時テレポートすると通常操作ができなくなるため、左クリック検知したいときだけテレポートすること
　⑤左クリック時の damage_dealt 増加を検知して function を実行
　⑥damage_dealt のスコアを 0 に初期化
　⑦召喚した Mob を数 tick 遅延させてから奈落に tp
説明
　自分と同じ座標にエンティティを重ね、左クリック時のエンティティへの与ダメージを検知する手法となる。
　通常時の左クリックが使えるよう、エンティティを重ねる条件などを指定して利用する必要がある。
　tp には 3tick 程度の遅延があるため、移動しながらの左クリック検知はできない。
　②③については召喚ではなく tp でも良いが、マルチプレイ実装するのであれば召喚の方が手間が少ない。
　※将来のアップデートで invisible が 0tick で反映されるようになることを祈る。

#data関連
エンティティの詳細な情報を表す「データタグ」を操作することができる。
データタグの書き方については説明しないが、データタグとは何かについては[この記事](https://qiita.com/yunica/items/06df6cf58875c608486b)を参照。

##dataコマンドでプレイヤーの座標を調べる
[Java]（1.16.3で検証済み）（2020/10/8更新）
コマンド
　data get entity プレイヤー名 Pos　←プレイヤー名指定。
　execute as @a run data get entity @s Pos　←プレイヤー全員。
説明
　tp版よりは安全かも知れない。@aの代わりに @eを使えばエンティティの座標も調べられる。

##クロスボウの攻撃力を上げる
[Java]（1.16.3で検証済み）（2020/10/8更新）
コマンド
　execute as @e[type=minecraft:arrow] run data modify entity @s damage set value 100.0d
使い方
　コマンドブロックの設定をリピートにし、常時実行させるのがお勧めです。
説明
　放たれた矢の攻撃力を100.0にする。通常、クロスボウの攻撃力を上げることはできないが、矢の攻撃力を上げることで擬似的にクロスボウの攻撃力を上げることができる。これを実行するともちろん弓の攻撃力もあがるので、クロスボウから撃たれたことをデータタグや進捗などを使って調べておく必要がある。

#execute関連
コマンドの実行場所、実行者、実行する向き、実行する条件などを指定して、より複雑な処理を行うときに使う。
また、実行したコマンドの結果をスコアやデータタグ、ストレージに格納することもできる。

##エンティティの数を数えてスコアに結果を代入する
[Java]（1.16.3で検証済み）（2020/10/8更新）
コマンド
　execute store result score ターゲットセレクタ スコア名 run execute if entity @e[type=minecraft:armor_stand]
使い方
　任意。調べたいときに使う。
説明
　ターゲットのスコアにエンティティ（今回は防具立て）の数が格納される。

##高さYの鉱石の数を数える
[Java]（1.16.3で検証済み）（2020/10/14更新）
コマンド
　execute store result score ターゲットセレクタ スコア名 at @e[type=armor_stand] run fill ~ ~ ~ ~99 ~ ~99 barrier replace diamond_ore
使い方
　任意。調べたいときに使う。
説明
　エンティティ（今回は防具立て）が置かれている座標高さYから南東(XZが+方向)に向かって100×100の範囲のダイヤモンド鉱石の数を調べ、スコアにその数を格納する。調べ終わった鉱石はバリアブロックで置換される。

#まとめ
以上。