# 재생 진행에 맞춰 항상 preload 개 앞까지 캐시를 채운다. # 현재 index 에서 (preload-1) 만큼 앞선 영상을 받아두면 시작 시 preload(1..N) # 와 합쳐져 N개 버퍼가 굴러간다. execute store result score cache_preload func.temp run data get storage mq:main video.preload execute if score cache_preload func.temp matches ..0 run return 0 scoreboard players operation cache_target func.temp = index main scoreboard players operation cache_target func.temp += cache_preload func.temp scoreboard players remove cache_target func.temp 1 execute if score cache_target func.temp > max_index main run return 0 function mq:videos/cache/add_one