MC CommanderMinecraft非公式コマンド支援

投票をコマンドで作る

次に遊ぶミニゲームや、サーバーのルールをみんなで決めたいときは、チャットで投票できるしくみが便利です。OPでない人でも押せるボタンを出し、結果を自動で数えます。

triggertellrawJava版

tellrawコマンドを作る

更新日:

1. 準備(最初に1回だけ)

/scoreboard objectives add vote trigger
/scoreboard objectives add votes dummy "投票結果"
/scoreboard objectives setdisplay sidebar votes

vote は、OPでない人も /trigger で自分の値を変えられるスコアです。votes には集計した票の数を入れ、サイドバーに出します。trigger のしくみは triggerコマンドの使い方 にまとめています。

2. 投票を始める

/scoreboard players set @a vote 0
/scoreboard players enable @a vote
/tellraw @a [{"text":"次のゲームを選んでください ","color":"yellow"},{"text":"[A] 鬼ごっこ","color":"aqua","click_event":{"action":"run_command","command":"/trigger vote set 1"}},{"text":"  "},{"text":"[B] かくれんぼ","color":"green","click_event":{"action":"run_command","command":"/trigger vote set 2"}}]

全員の票を0にしてから、投票できる状態(enable)にします。チャットの [A] か [B] を押すと、その人の vote が1か2になります。trigger は1回使うと使えなくなるので、1人1票になります。1.21.4以前は click_event を clickEvent、command を value にして書きます。

3. 票を数える

# 反復・常時実行
execute store result score A votes if entity @a[scores={vote=1}]
# チェーン・常時実行
execute store result score B votes if entity @a[scores={vote=2}]

Aを選んだ人数とBを選んだ人数を数えて、サイドバーの「A」「B」に出します。押されるたびに数字が変わります。数え方のしくみは execute storeの使い方 を見てください。

4. 結果を発表する

execute if score A votes > B votes run title @a title {"text":"Aの勝ち!","color":"aqua"}
execute if score B votes > A votes run title @a title {"text":"Bの勝ち!","color":"green"}
execute if score A votes = B votes run title @a title {"text":"引き分け","color":"gray"}

締め切りのときに、ボタンなどで1回だけ動かします。if score で2つのスコアを比べています。タイトルの出し方は titleとtellrawで画面表示を作る基本 にまとめています。

5. 次の投票の準備

/scoreboard players reset @a vote
/scoreboard players set A votes 0
/scoreboard players set B votes 0

締め切ったあとに押されないよう、vote を消しておきます。もう一度投票するときは2から始めます。

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

よくある質問

選択肢を3つ以上にできますか?

ボタンを [C] まで足して set 3 にし、3の数える行を1つ増やします。

だれが何に投票したか見られますか?

/scoreboard players list プレイヤー名 で、その人の vote の値が見られます。

投票し直せるようにできますか?

締め切る前に、もう一度 /scoreboard players enable @a vote を実行すると、押し直した方に変わります。

関連ページ

triggerコマンドの使い方

OPでない人が押せるボタンのしくみです。

execute storeの使い方

人数を数える方法です。

tellrawコマンドの基本

チャットのボタンの作り方です。

ミニゲームの作り方

投票で選んだゲームを始める流れです。

コマンド辞典

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