# v1.0.20 → v1.0.21 부분 적용 가이드 전체 datapack 을 교체하지 않고, 이 폴더의 파일만 덮어쓰면 v1.0.21 과 동일한 상태가 됩니다. ## 무엇이 바뀌었나 ### 1. `repeat/buttons/btn.mcfunction` — 버튼이 같이 눌러지던 문제 + 라벨이 JSON 코드로 나오던 문제 **(a) 클릭 시 stone_button 도 같이 눌러짐** interaction 박스가 stone_button 의 hitbox 와 정확히 겹쳐 있어서, 한 번 클릭에 interaction 도 발화하고 stone_button 도 vanilla 클릭으로 인식해 `powered=true` 애니메이션이 같이 일어났습니다. interaction 박스를 버튼 면 바깥쪽으로 한 두께(0.125) 만큼 빼서, 플레이어 ray 가 stone_button 에 닿기 전에 interaction 에서 멈추도록 했습니다. - south : 깊이 z 중심 0.0625 → -0.0625 - north : 깊이 z 중심 0.9375 → 1.0625 - east : 깊이 x 중심 0.0625 → -0.0625 - west : 깊이 x 중심 0.9375 → 1.0625 **(b) 라벨이 `{"text":"게임시작",...}` JSON 텍스트 그대로 보임** MC 1.20.5+ 부터 text_display 의 `text` 필드는 String 이 아니라 직접 TextComponent compound 로 저장됩니다. 이전에는 String 안에 JSON 을 넣어서 (`text:'{...}'`) 그 JSON 자체가 텍스트로 렌더링되었습니다. compound 형태 (`text:{text:"...",color:"...",font:"..."}`) 로 변경. ### 2. `repeat/buttons/btn_prep.mcfunction` v1.0.20 에서 이미 수정됨 (defaults + merge 방식). 변경 없음 — 다만 v1.0.19 이하에서 점프하는 경우 같이 덮어써야 합니다. ## 적용 방법 서버의 datapack 폴더 (예: `world/datapacks/music_quiz/`) 기준으로 두 파일을 **반드시 덮어쓰세요**. ``` temp/data/mq/function/repeat/buttons/btn.mcfunction -> /data/mq/function/repeat/buttons/btn.mcfunction (덮어쓰기) temp/data/mq/function/repeat/buttons/btn_prep.mcfunction -> /data/mq/function/repeat/buttons/btn_prep.mcfunction (덮어쓰기) ``` 복사 후 게임 안에서: ``` /reload ``` ## 확인 - 버튼을 클릭해도 stone_button 의 `powered=true` 눌림 애니메이션이 발생하지 않아야 합니다 (interaction 만 발화). - 버튼 아래 라벨이 `게임시작` / `정지` / `소리 테스트` 등으로 정상 표시 (JSON 텍스트 노출 없음). - 콘솔에 파싱 에러 없음.