data modify storage mq:main answer set value {title:"", author:"", alias:[]} data merge storage func:temp {} data merge storage mq:tmp {} function mq:init/config function mq:init/songs function mq:init/buttons function mq:init/triggers function mq:tellraw {"text":"서버 리로드 성공!","color":"white","msg":'""'} scoreboard objectives remove func.temp scoreboard objectives remove main scoreboard objectives remove buttons scoreboard objectives remove answer scoreboard objectives remove leave_game scoreboard objectives add func.temp dummy scoreboard objectives add main dummy scoreboard objectives add buttons dummy scoreboard objectives add answer dummy scoreboard objectives add leave_game custom:leave_game # 외부 모드 존재 확인용 점수. # mq_video_mod : 클라이언트 모드(mc_video_player_mod). 클라 join 시 서버로 # handshake payload 전송 → 서버 측 모드가 해당 플레이어 점수를 1 로 set. # 클라에 모드가 없으면 0 유지. (login.mcfunction 에서 플레이어별 0 초기화.) # same objective 안에 holder 두 종류 — `#server` 는 서버 컴포넌트 존재 # (서버 측 모드가 매 tick 1 로 갱신), `` 는 클라 측 존재 (payload # 수신 시 1 로 갱신). # # mq_chat_mod (mc_chat_answer_mod) 는 더 이상 게이트하지 않음 — 모드 없는 # 환경에서도 `/trigger input` dialog 경로로 정답 제출 가능. presence pulse # 가 호스트 환경에 따라 안 들어오거나 사용자 모드 버전이 옛날일 때 false # negative 로 시작이 막히던 문제 회피. (모드 측은 여전히 매 tick objective # 존재시 1 로 set 시도하지만, objective 가 없으면 silent skip 하므로 무해.) scoreboard objectives remove mq_chat_mod scoreboard objectives remove mq_video_mod scoreboard objectives add mq_video_mod dummy # /reload 후 모드가 한 tick 도 돌기 전에 start 가 호출될 수 있으니 # #server 점수도 0 으로 materialize. 모드가 살아 있으면 다음 tick 에 1 로 갱신. scoreboard players set #server mq_video_mod 0 scoreboard players set two func.temp 2 bossbar add mq:process [{"text":"진행도: ","color": "yellow","bold": true},{"text":"0","color": "yellow","bold": true},{"text":"/","color": "yellow","bold": true},{"text":"0","color": "yellow","bold": true}] function mq:commands/stop with storage mq:main function mq:players/login with storage mq:main spawn