v1.3.0 — single jar covers Fabric 1.21.6 + Fabric 26.1.2 + NeoForge 1.21.6

이전엔 1.21.6 (v1.1.1) 와 26.1.2 (v1.2.1) 가 분리된 jar 였음. 사용자 입장에서
버전별로 다른 파일을 받아야 했고 합친 의미가 없어서, 한 jar 가 어느 환경에든
들어갈 수 있도록 컨테이너 구조로 재작업.

구조:
  - outer chat_answer-1.3.0.jar
    ├── fabric.mod.json         (entrypoint 없는 컨테이너 메타. MC dep 없음.)
    ├── META-INF/neoforge.mods.toml  (NeoForge 1.21.6 모드 본체 메타)
    ├── kr/.../neoforge/        (NeoForge 1.21.6 entry + core, Mojang 매핑)
    ├── kr/.../core/            (NeoForge 가 쓰는 공유 core 사본)
    └── META-INF/jars/          (Fabric Loader 가 자동 스캔)
        ├── chat_answer-fabric-1216-1.3.0.jar  (MC ">=1.21.6 <1.22")
        └── chat_answer-fabric-2612-1.3.0.jar  (MC ">=26.1.2")

로더별 동작:
  - Fabric 1.21.6  → outer 는 no-op 컨테이너, 1216 nested 가 활성 (intermediary class_NNNN 리매핑됨)
  - Fabric 26.1.2  → outer 는 no-op 컨테이너, 2612 nested 가 활성 (intermediary 0.0.0 identity)
  - NeoForge 1.21.6 → outer 의 NeoForge entry 가 동작. Fabric 메타와 nested jars 는 NeoForge 가 무시.

핵심 트레이드오프:
  - 1.21.6 fabric subproject 는 modImplementation 필수 (intermediary 매핑 리맵 필요)
  - 26.1.2 fabric subproject 는 implementation 으로 충분 (서버 jar unobfuscated → identity 매핑)
  - 26.1.2 NeoForge 는 moddev plugin 이 아직 26.x 를 파싱 못 함 → 1.21.6 만 지원
  - 두 nested fabric jar 는 mod id 동일 (chat_answer_fabric) — depends.minecraft 가 상호 배타라
    한 환경에서 둘이 동시 candidate 가 되지 않으므로 충돌 없음.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-05-14 02:45:54 +09:00
parent 785efe24b9
commit e01137ee31
19 changed files with 276 additions and 135 deletions

View File

@@ -1,20 +1,26 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.parallel=true
# ───── target Minecraft / loader versions ───────────────────────────────────
# MC 26.1.2 = 사용자 환경. 1.21.6 과는 intermediary 매핑이 달라서 동일 jar 로 양쪽
# 지원 불가 → 26.1.2 전용 빌드.
minecraft_version=26.1.2
# Fabric
loader_version=0.19.2
fabric_version=0.148.2+26.1.2
# NeoForge
neoforge_version=26.1.2.36-beta
# ───── mod metadata ─────────────────────────────────────────────────────────
mod_id=chat_answer
mod_version=1.2.1
mod_version=1.3.0
mod_group=kr.tkrmagid.chatanswer
mod_name=채팅정답
# ───── per-target MC / loader versions ──────────────────────────────────────
# 한 jar 로 1.21.6 (Fabric/NeoForge) + 26.1.2 (Fabric) 전부 커버하기 위해
# 각 타겟마다 별도 subproject 가 자기 버전으로 빌드되고, 결과물을 outer
# container jar 가 묶는다 (Fabric 은 META-INF/jars/ JiJ, NeoForge 는 outer 본체).
# Fabric MC 1.21.6
mc_1216=1.21.6
fabric_api_1216=0.128.2+1.21.6
fabric_loader_1216=0.16.10
# Fabric MC 26.1.2 (26.x 서버 jar 는 unobfuscated. intermediary 0.0.0 = identity)
mc_2612=26.1.2
fabric_api_2612=0.148.2+26.1.2
fabric_loader_2612=0.19.2
# NeoForge MC 1.21.6 (26.x 는 NeoForge moddev plugin 이 아직 인식 못 함)
neoforge_1216=21.6.20-beta