更新日:
1. 1種類のブロックを掘った数を数える
/scoreboard objectives add stone_mined minecraft.mined:minecraft.stone "石を掘った数"
/scoreboard objectives setdisplay sidebar stone_mined
minecraft.mined: の後ろにブロックのIDを書くと、そのブロックを掘った数を自動で数えてくれます。コマンドブロックは要りません。ダイヤ鉱石なら、最後の stone の部分を diamond_ore に、深層岩のダイヤ鉱石なら deepslate_diamond_ore に変えます。
2. 全部のブロックの合計を数える
「どのブロックでもいいから掘った数」を1つで数える基準はありません。そこで、ツルハシを使った回数を合計します。ツルハシでブロックを1つ壊すと、使った回数が1増えるしくみを使います。
/scoreboard objectives add p_wood minecraft.used:minecraft.wooden_pickaxe
/scoreboard objectives add p_stone minecraft.used:minecraft.stone_pickaxe
/scoreboard objectives add p_iron minecraft.used:minecraft.iron_pickaxe
/scoreboard objectives add p_gold minecraft.used:minecraft.golden_pickaxe
/scoreboard objectives add p_dia minecraft.used:minecraft.diamond_pickaxe
/scoreboard objectives add p_neth minecraft.used:minecraft.netherite_pickaxe
/scoreboard objectives add dig dummy "整地数"
最初に一度だけ実行します。1.21.9以降は銅のツルハシ(copper_pickaxe)もあるので、使うなら同じように1行足します。シャベルや斧も数えたいときは、wooden_shovel などで同じように増やします。
3. 合計を出す(くり返し)
/execute as @a run scoreboard players operation @s dig = @s p_wood
/execute as @a run scoreboard players operation @s dig += @s p_stone
/execute as @a run scoreboard players operation @s dig += @s p_iron
/execute as @a run scoreboard players operation @s dig += @s p_gold
/execute as @a run scoreboard players operation @s dig += @s p_dia
/execute as @a run scoreboard players operation @s dig += @s p_neth
1行目をくり返しコマンドブロック(常時実行)に入れ、残りをチェーンでつなげます。execute as @a を付けて1人ずつ計算するのが大事です。右と左の両方に @a を書くと、ほかの人の数が入ってしまいます。
ツルハシでモブをたたいた回数も「使った回数」に入るので、ぴったり掘った数にはなりません。整地ランキングとして遊ぶ分には十分です。
4. ランキングを表示する
/scoreboard objectives setdisplay sidebar dig
/scoreboard objectives setdisplay list dig
サイドバーには数の多い順に15人まで並びます。list にすると、Tabキーを押したときのプレイヤー一覧の横に数が出ます。ほかのスコアをサイドバーに出したいときは、こちらに整地数を回すと便利です。
5. 数に応じてごほうびを出す(くり返し)
/execute as @a[scores={dig=1000..},tag=!dig1000] run tellraw @a [{"selector":"@s"},{"text":" が1000ブロック掘った!","color":"gold"}]
/give @a[scores={dig=1000..},tag=!dig1000] diamond 5
/tag @a[scores={dig=1000..},tag=!dig1000] add dig1000
1000ブロック掘った人に1回だけダイヤを5個渡す例です。最後にタグを付けるので、2回目からは動きません。10000ブロックなど次の目標を作るときは、数とタグの名前を変えて同じものを足します。
6. 数をリセットする
/scoreboard players reset @a p_wood
/scoreboard players reset @a dig
p_stone、p_iron などほかのツルハシのスコアも同じようにリセットします。全部リセットしないと、3の計算ですぐ元の数に戻ります。全部消して作り直すなら、/scoreboard objectives remove dig のように基準ごと消すほうが早いです。
うまくいかないときの確認ポイント
- 数が増えない:基準の書き方が
minecraft.mined:minecraft.stoneのように「minecraft.」が2回入る形か確認します。 - 全員が同じ数になる:3で
execute as @aと@sを使っているか確認します。 - 統合版で使えない:統合版のスコアボードには自動で数える基準がなく、
dummyしか使えません。
よくある質問
ほかの人のランキングを消したいときは?
scoreboard players reset 名前 dig のように、名前を書いた人だけリセットできます。
今までに掘った数も数えられますか?
スコアボードは作ったときから数え始めるので、それより前に掘った分は入りません。今までの数は統計の画面で見られます。
サイドバーの名前を変えられますか?
scoreboard objectives modify dig displayname の後ろに新しい名前を書くと、表示名を変えられます。