【指令】我的世界原版檢測(cè)上線玩家2cb

有視頻看呦~


#循環(huán),無(wú)條件,保持開(kāi)啟
#為[標(biāo)簽所記錄的所有玩家]移除標(biāo)簽onlineplayers
#連鎖,無(wú)條件,保持開(kāi)啟
#為[服務(wù)器在線玩家]增加標(biāo)簽onlineplayers
#原理:
? ? ? ? ? #我們知道,命令執(zhí)行至少需要一個(gè)執(zhí)行體和一條執(zhí)行命令。

在我們這個(gè)體系中

? ? ? ?我們可以想到,執(zhí)行體為玩家,但又不能是所有在線玩家,所以,我們需要篩選出我們想要的玩家。
? ? ? ?那用什么篩選呢?
? ? ? ?顯然易見(jiàn),標(biāo)簽,計(jì)分板就是不錯(cuò)的選擇,為使command_block數(shù)量達(dá)到最少,我選擇標(biāo)簽篩選。
? ? ? ?那如何篩選出在線玩家呢?
? ? ? ?我們首先移除所有玩家(*)的標(biāo)簽(如onlineplayers)(此前并沒(méi)有設(shè)置標(biāo)簽)(tag * remove onlineplayers),再給在線玩家增加(如tag @a add onlineplayers)標(biāo)簽,這樣以來(lái),在線玩家在命令塊執(zhí)行后都為有標(biāo)簽。
? ? ? ? 那如何篩選出剛進(jìn)入游戲的玩家呢?
? ? ? ? 我們又知道,命令塊執(zhí)行命令需要時(shí)間,這個(gè)時(shí)間叫做游戲刻,而剛上線的玩家正好有一個(gè)游戲刻的時(shí)間,命令方塊沒(méi)能賦予其標(biāo)簽,在一個(gè)游戲刻之后,則會(huì)被增加標(biāo)簽,根據(jù)此特性,我們可以將其劃分為已在線玩家(有onlineplayers標(biāo)簽),沒(méi)有標(biāo)簽的玩家視為未上線玩家和剛進(jìn)入游戲(無(wú)onlineplayers標(biāo)簽)。
? ? ? ? 故而我們區(qū)分出了剛進(jìn)入游戲玩家和已在線玩家。

執(zhí)行命令:

? ? ? ? 篩選出玩家之后,我們只需要將選擇器@a[tag=onlineplayers]([注]在線玩家)和@a[tag=!onlineplayers]([注]剛進(jìn)入游戲玩家)。例子如下
execute @a[tag=!onlineplayers] ~~~ tellraw @a {"textraw":[{"text":"<"},{"selector":"@s"},{"text":"> §l§4水視頻真快樂(lè),233"}]}
#循環(huán),無(wú)條件,保持開(kāi)啟
tag * remove onlineplayers
#連鎖,無(wú)條件,保持開(kāi)啟
tag @a add onlineplayers
#連鎖,無(wú)條件,保持開(kāi)啟

在此補(bǔ)充:*表示該選擇器所追蹤的所有玩家,包括下線玩家,@a只選擇上線玩家

執(zhí)行效果:? ? ? ?

最后,該命令執(zhí)行效果為,每一位剛進(jìn)入游戲的玩家都會(huì)向聊天欄發(fā)送? 水專輯真快樂(lè),233,假設(shè)進(jìn)入的玩家叫 唱、跳、rap 就會(huì)顯示
? ? ?<唱、跳、rap> 水專輯真快樂(lè),233(看不見(jiàn)我看不見(jiàn)我,哈哈哈)

