939505c86119464caa45a44bb5d68b3cbd569375
v1.3.0 의 nested fabric jar 가 실제로 로드되지 않던 버그 수정.
Fabric Loader 는 META-INF/jars/ 디렉토리를 자동 스캔하지 않고, 부모 jar 의
fabric.mod.json 에 "jars" 배열로 명시된 파일만 처리한다. v1.3.0 에선 jars
배열이 비어 있어서 outer chat_answer 컨테이너만 로드되고 (entrypoint 없으니
no-op), 실제 채팅 hook 을 담은 nested fabric jar 는 그대로 무시됐다.
수정:
- container-resources/fabric.mod.json: "jars" 배열에 두 nested 경로 명시
- root build.gradle: containerJar 의 nested jar 파일명을 버전 suffix 없는
고정 이름 (chat_answer-fabric-1216.jar / -2612.jar) 으로 변경. outer
fabric.mod.json 의 jars 항목과 일치해야 Fabric Loader 가 찾는다.
증상: 음악퀴즈 데이터팩 맵 접속 시 "모드 활성화" 메시지 안 뜸
(ServerPlayConnectionEvents.JOIN 이 실행 안 되어 storage chat_answer:status
active 가 0b 로 유지).
원인: 위와 같이 nested jar 가 로드 안 됨.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chat_answer (채팅정답)
음악퀴즈(mq) 데이터팩의 짝이 되는 서버사이드 모드.
정답 입력을 받는 상태(scoreboard players get init main == 5) 동안 플레이어가
채팅을 입력하면 메시지를 가로채서 다음을 실행한다:
execute as <플레이어 UUID> run function mq:answer/submit {text:'<채팅 내용>'}
채팅은 다른 플레이어에게 broadcast 되지 않으므로 정답이 화면에 노출되지 않는다.
init 점수가 5 가 아닐 때는 채팅이 평소처럼 모두에게 보인다.
빌드
JDK 21 필요.
./gradlew buildAll
산출물:
build/libs/chat_answer-<version>-all.jar— Fabric + NeoForge 통합 단일 jar (권장)fabric/build/libs/chat_answer-fabric-<version>.jar— Fabric 전용neoforge/build/libs/chat_answer-neoforge-<version>.jar— NeoForge 전용
설치
서버의 mods/ 폴더에 통합 jar (*-all.jar) 하나만 넣으면 된다. 로더가 Fabric 이든
NeoForge 든 자기 쪽 진입점만 인식해서 동작한다.
요구사항:
- Minecraft 1.21.6+ 서버
- Fabric: Fabric Loader 0.16+, Fabric API
- NeoForge: 21.6+
호환성
- 빌드 타깃: Minecraft 1.21.6 (Dialog 시스템 최초 도입 버전).
- 사용하는 API (
ServerMessageEvents.ALLOW_CHAT_MESSAGE/ServerChatEvent,Scoreboard,MinecraftServer.getCommands()) 는 1.21.x 전반에 안정적이라 같은 jar 가 보통 그대로 동작. - Mojang 이 chat / scoreboard / command 시스템을 깨는 변경을 적용하면 재빌드 필요.
구조
common/— 로더 비종속 핵심 로직 (Mojang 매핑 기반)fabric/— Fabric Loader 진입점 +ServerMessageEvents훅neoforge/— NeoForge 진입점 +ServerChatEvent훅
통합 jar 는 두 로더의 결과물을 하나로 묶되, Fabric 쪽 common 클래스는 패키지
재배치(kr.tkrmagid.chatanswer.core → kr.tkrmagid.chatanswer.fabric.core)로
NeoForge 쪽 같은 클래스와 충돌하지 않게 분리한다.
라이센스
MIT
Releases
14
Languages
Java
100%