Restructure into multi-loader (Fabric + NeoForge) with merged jar
common 디렉토리에 로더 비종속 ChatAnswerCore 를 두고, fabric/ 과 neoforge/ 서브프로젝트가 각자 진입점만 갖도록 분리. 두 결과물을 하나의 jar 로 묶기 위해 Fabric 측 common 클래스를 Shadow 의 relocate 로 kr.tkrmagid.chatanswer.fabric.core 패키지로 옮긴다 (Fabric 은 intermediary, NeoForge 는 Mojang 매핑이라 같은 클래스 경로에 그대로 두면 충돌). 루트의 mergedJar 태스크가 :fabric:relocatedJar 와 :neoforge:jar 를 합쳐서 build/libs/chat_answer-<version>-all.jar 생성. 산출물: 9.9KB 통합 jar 가 Fabric / NeoForge 양쪽에서 작동.
This commit is contained in:
41
README.md
41
README.md
@@ -14,35 +14,46 @@ execute as <플레이어 UUID> run function mq:answer/submit {text:'<채팅 내
|
||||
|
||||
## 빌드
|
||||
|
||||
JDK 21 필요. Linux/macOS:
|
||||
JDK 21 필요.
|
||||
|
||||
```
|
||||
./gradlew build
|
||||
./gradlew buildAll
|
||||
```
|
||||
|
||||
Windows:
|
||||
산출물:
|
||||
|
||||
```
|
||||
gradlew.bat build
|
||||
```
|
||||
|
||||
산출물: `build/libs/chat_answer-<version>.jar`
|
||||
- `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 를 넣는다. Fabric Loader 0.16+ 필요. Fabric API 도 함께 설치.
|
||||
서버의 `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`, `Scoreboard`, `MinecraftServer.getCommandManager`) 는 1.21.x 전반에 걸쳐 인터미디어리 매핑이 안정적이므로 동일 jar 가 그 이상 버전에서도 일반적으로 작동.
|
||||
- Mojang 이 chat / scoreboard / command 시스템을 깨는 변경을 적용하면 그 시점에 재빌드 필요.
|
||||
- 빌드 타깃: Minecraft 1.21.6 (Dialog 시스템 최초 도입 버전).
|
||||
- 사용하는 API (`ServerMessageEvents.ALLOW_CHAT_MESSAGE` / `ServerChatEvent`,
|
||||
`Scoreboard`, `MinecraftServer.getCommands()`) 는 1.21.x 전반에 안정적이라
|
||||
같은 jar 가 보통 그대로 동작.
|
||||
- Mojang 이 chat / scoreboard / command 시스템을 깨는 변경을 적용하면 재빌드 필요.
|
||||
|
||||
### Forge / NeoForge 사용자
|
||||
## 구조
|
||||
|
||||
현재 jar 는 Fabric 전용. NeoForge 서버에서 사용하려면 [Sinytra Connector](https://modrinth.com/mod/connector) 를 함께 설치하면 그대로 작동.
|
||||
- `common/` — 로더 비종속 핵심 로직 (Mojang 매핑 기반)
|
||||
- `fabric/` — Fabric Loader 진입점 + `ServerMessageEvents` 훅
|
||||
- `neoforge/` — NeoForge 진입점 + `ServerChatEvent` 훅
|
||||
|
||||
(별도 NeoForge 네이티브 variant 빌드는 향후 추가 예정.)
|
||||
통합 jar 는 두 로더의 결과물을 하나로 묶되, Fabric 쪽 common 클래스는 패키지
|
||||
재배치(`kr.tkrmagid.chatanswer.core` → `kr.tkrmagid.chatanswer.fabric.core`)로
|
||||
NeoForge 쪽 같은 클래스와 충돌하지 않게 분리한다.
|
||||
|
||||
## 라이센스
|
||||
|
||||
|
||||
Reference in New Issue
Block a user