# ============================================================
# pid:tick  （minecraft:tick tag 觸發，每 tick 執行一次）
# 功能：確保所有在線玩家都有有效的 PID
# 流程：
#   1. 偵測 playerID 未設定（< 1）的玩家 → 標記為 0（待分配）
#   2. 對所有 playerID=0 的玩家執行 sync_pid 進行 PID 同步
# ============================================================

# 步驟 1：檢查所有玩家，若 playerID 不在 1 以上，強制設為 0
# unless score ... matches 1.. 涵蓋：完全未設定、分數為 0 或負數的情況
execute as @a at @s unless score @s playerID matches 1.. run scoreboard players set @s playerID 0

# 步驟 2：對所有 playerID=0 的玩家執行 sync_pid
# 只處理需要的玩家（新玩家首次加入、資料包重新載入後計分板被清空等情況）
execute as @a[scores={playerID=0}] at @s run function pid:player/sync_pid

execute unless score .currentID playerID matches 1.. store result score .currentID playerID run data get storage pid:db current_pid