직전 커밋(657db78)의 block_pos 만으로는 부족했다. /summon 은 Entity.load() →
readAdditionalSaveData() 에서 block_pos 의 16블록 거리검사를 수행한 뒤에야 명령
좌표로 이동하므로, 검사 시점엔 엔티티가 기본 위치라 검사를 실패해 로그가
"invalid position: 2782,88,5979" 형태로 계속 남는다. NBT에 Pos:[xd,yd,zd] 를
함께 넣으면 load 단계에서 위치가 먼저 설정돼 거리검사를 통과한다.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
페인팅을 /summon 으로 소환하면 부착 블록 좌표가 비어(null) 있어
"Block-attached entity at invalid position: null" 로그가 소환 시·주기 검사마다
반복 출력된다(MC-252934). 1.20.5+ 의 block_pos:[I; x,y,z] 정수배열을 페인팅
자신의 좌표와 동일하게 명시해 null 구간을 없앤다. 렌더링 위치/동작은 동일.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
minecraft_launcher 가 만드는 musicquiz 리소스팩 (track_NN / cover_NN)
과 한 쌍으로 동작한다.
- 음원 재생: yp playall (명령 블록 + auto 토글) → /playsound musicquiz:track_NN
- 정답 이미지: ts placeloc → /summon painting (musicquiz:cover_NN) +
/kill @e[type=painting,tag=mq_cover]
- stopsound 하드코딩(weather) 4곳을 mq:quiz/stop_sound 매크로 호출로 통일
- check/server, repeat/check_server, status 스코어보드(yp/ts/skript) 등
플러그인 hello 패킷 대기 로직 일괄 삭제
- 스토리지 재구성: command_block 컴파운드 폐기, audio/image/marker 분리
(init/config.mcfunction 한 곳에서 수정)
- 곡 단위 volume override 지원 — songs[i].volume 으로 곡별 음량 지정 가능
(미지정 시 audio.volume fallback)
- 트랙 번호 zero-pad 는 mq:tmp.pad 분기 + 매크로 문자열 조립으로 처리
- max_index 는 songs 배열 길이에서 자동 계산
- 호출 경로 단축: select → setanswer → macro/setanswer → macro/summon →
play_sound