MC CommanderMinecraft非公式コマンド支援

プレイ時間を表示するコマンド

スコアボードの play_time という基準を使うと、プレイヤーごとのプレイ時間を自動で数えられます。数はティック(20分の1秒)なので、時間と分に直して表示する方法も紹介します。Java版の書き方で説明します。

scoreboard統計Java版

scoreboardコマンドを作る

更新日:

1. プレイ時間を数える

/scoreboard objectives add playtime minecraft.custom:minecraft.play_time "プレイ時間"

これだけで、ワールドにいる間ずっと自動で数が増えます。コマンドブロックは要りません。数はティックなので、1秒で20、1分で1200、1時間で72000増えます。1.16以前は名前が minecraft.play_one_minute でした(名前は「分」ですが、中身はティックです)。

スコアボードは作った時点から数え始めます。それより前に遊んだ時間は入りません。

2. 時間と分に直す準備(最初に一度だけ)

/scoreboard objectives add hours dummy "プレイ時間(時間)"
/scoreboard objectives add mins dummy
/scoreboard objectives add const dummy
/scoreboard players set #72000 const 72000
/scoreboard players set #1200 const 1200
/scoreboard players set #60 const 60

const は計算に使う決まった数を入れておくスコアです。スコアの計算では、割る数もスコアに入れておく必要があります。

3. 時間と分を計算する(くり返し)

/execute as @a run scoreboard players operation @s hours = @s playtime
/execute as @a run scoreboard players operation @s hours /= #72000 const
/execute as @a run scoreboard players operation @s mins = @s playtime
/execute as @a run scoreboard players operation @s mins /= #1200 const
/execute as @a run scoreboard players operation @s mins %= #60 const

1行目をくり返しコマンドブロック(常時実行)に入れ、残りをチェーンでつなげます。ティックを72000で割ると時間、1200で割ると合計の分になります。最後の %= は「60で割った余り」で、時間に入らなかった残りの分です。割り算は小数を切り捨てます。

サイドバーにプレイ時間のランキングを出すなら、/scoreboard objectives setdisplay sidebar hours で時間の数を並べます。

4. 自分のプレイ時間をチャットで確認する

/scoreboard objectives add check trigger
/scoreboard players enable @a check

最初に一度だけ実行します。trigger の基準は、OPでない人でも /trigger check で数を変えられるスコアです。

/execute as @a[scores={check=1..}] run tellraw @s [{"text":"あなたのプレイ時間:"},{"score":{"name":"@s","objective":"hours"}},{"text":"時間"},{"score":{"name":"@s","objective":"mins"}},{"text":"分"}]
/scoreboard players set @a[scores={check=1..}] check 0
/scoreboard players enable @a check

くり返しとチェーンで並べます。/trigger check を実行した人にだけ、自分のプレイ時間が表示されます。表示したら0に戻し、もう一度使えるように enable し直します。くわしくは triggerコマンドの使い方 を見てください。

5. プレイ時間に応じてごほうびを出す(くり返し)

/give @a[scores={hours=1..},tag=!play1h] diamond 3
/tag @a[scores={hours=1..},tag=!play1h] add play1h

1時間遊んだ人に1回だけダイヤを3個渡す例です。最後にタグを付けるので、2回目からは動きません。

6. 歩いた距離やジャンプ回数も数える

/scoreboard objectives add walk minecraft.custom:minecraft.walk_one_cm
/scoreboard objectives add jumps minecraft.custom:minecraft.jump "ジャンプ回数"
/scoreboard objectives add deaths deathCount "死んだ回数"
/scoreboard objectives add alive minecraft.custom:minecraft.time_since_death

どれも作るだけで自動で数えます。walk_one_cm は名前のとおりセンチメートルなので、100で割るとブロック数(メートル)になります。time_since_death は最後に死んでからのティック数で、死ぬと0に戻ります。

うまくいかないときの確認ポイント

よくある質問

今までのプレイ時間を見る方法は?

ゲームメニューの統計の画面に、ワールドを作ってからのプレイ時間が出ます。スコアボードは作った時点から数えます。

放置している時間も数えられますか?

play_time はワールドにいる間ずっと増えるので、放置している時間も入ります。

秒まで出せますか?

playtime を20で割って60で割った余りを出すと、秒の数になります。

関連ページ

日数と時刻を画面に表示するコマンド何日目かと時計を画面に出します。triggerコマンドの使い方

OPでない人が押せるボタンです。

掘ったブロックの数を表示するコマンド

統計を使ったランキングです。

scoreboardでポイント・お金・ランキングを作る

スコアの基本です。

体力を表示するコマンド

スコアを画面に出す方法です。

コマンド辞典

基本構文とコマンド別の使い方を確認できます。