Files
mc_datapack/temp/README.md
Claude (owner) da075b60b8 music_quiz: 버튼 동시 눌림 방지 + text_display 텍스트 컴포넌트 형식 수정
(a) 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) MC 1.20.5+ 부터 text_display.text 는 String 이 아닌 직접 TextComponent
    compound. 이전에 String 안에 JSON 을 넣어서 그 JSON 자체가 텍스트로
    렌더링되던 문제 (`{"text":"게임시작",...}` 가 그대로 보임). compound
    형태 `text:{text:"...",color:"...",font:"..."}` 로 변경.

temp/ 부분 적용 패키지의 btn.mcfunction 과 README 도 동기화.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 23:50:04 +09:00

2.3 KiB

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
  -> <datapack>/data/mq/function/repeat/buttons/btn.mcfunction        (덮어쓰기)

temp/data/mq/function/repeat/buttons/btn_prep.mcfunction
  -> <datapack>/data/mq/function/repeat/buttons/btn_prep.mcfunction   (덮어쓰기)

복사 후 게임 안에서:

/reload

확인

  • 버튼을 클릭해도 stone_button 의 powered=true 눌림 애니메이션이 발생하지 않아야 합니다 (interaction 만 발화).
  • 버튼 아래 라벨이 게임시작 / 정지 / 소리 테스트 등으로 정상 표시 (JSON 텍스트 노출 없음).
  • 콘솔에 파싱 에러 없음.