차원 모드 마무리 + JAR 빌드
Master Dimension 모드의 메타 정보를 정리하고 Gradle로 JAR를 빌드한 뒤 인게임 검증까지 완료하는 방법을 다룹니다.
이 챕터에서 하는 일
지금까지 차원 등록, 포탈 블록, 프레임 인식, 진입/복귀 로직, 룰셋 설정을 모두 마쳤습니다. 이 챕터에서는 모드 메타 정보를 정리하고 Gradle로 배포 가능한 JAR를 만든 뒤, 실제 게임에서 동작을 확인합니다.
모드 메타 정보 확인
src/main/templates/META-INF/neoforge.mods.toml은 Gradle 빌드 시 gradle.properties의 변수로 치환됩니다. 현재 설정을 확인합니다.
# examplemod-master-projects/dimension/gradle.properties
mod_id=master_dimension
mod_name=Master Dimension
mod_version=1.0.0
mod_group_id=com.example.master.dimension
neo_version=26.1.2.64-beta
minecraft_version=26.1.2neoforge.mods.toml의 description 필드를 실제 내용으로 채웁니다.
# src/main/templates/META-INF/neoforge.mods.toml
description='''
Magic Realm 커스텀 차원과 포탈 시스템을 담은 NeoForge 26 마스터 트랙 모드.
MagicPortalBlock과 MagicIgniter로 포탈을 활성화하고,
PortalShape 프레임 인식으로 3×3 ~ 21×21 크기의 포탈을 지원합니다.
'''데이터팩 디렉토리 구조 확인
JAR에 데이터팩이 포함되지 않으면 차원 로드 자체가 실패합니다. 빌드 전에 구조를 확인합니다.
src/main/resources/data/master_dimension/
├── dimension/
│ └── magic_realm.json # 차원 등록 (generator, type 참조)
├── dimension_type/
│ └── magic_realm.json # 차원 룰셋 (fixed_time, bed_works, effects)
└── worldgen/
└── biome/
└── magic_realm.json # 바이옴 정의 (mob_spawn_settings, effects)
⚠️ 데이터팩 디렉토리 누락 시 차원 로드 실패
data/master_dimension/디렉토리가 JAR에 포함되지 않으면: → 차원 진입 시도 시 "Unknown dimension master_dimension:magic_realm" 에러Gradle 빌드는 자동으로
src/main/resources/data/*를 포함합니다. 정상 진행됩니다.
JAR 빌드
cd examplemod-master-projects\dimension
.\gradlew.bat build빌드가 성공하면 다음 경로에 JAR가 생성됩니다.
build/libs/master_dimension-1.0.0.jar
빌드 로그에서 BUILD SUCCESSFUL을 확인합니다.
> Task :compileJava
> Task :processResources
> Task :generateModMetadata
> Task :jar
> Task :build
BUILD SUCCESSFUL in 45s
build.gradle 핵심 설정 확인
빌드 설정에서 중요한 부분 두 가지를 확인합니다.
1. Java 버전
// examplemod-master-projects/dimension/build.gradle
java.toolchain.languageVersion = JavaLanguageVersion.of(25)NeoForge 26.1.2는 Java 25를 사용합니다. JDK 25가 설치되어 있어야 합니다.
2. 리소스 포함 설정
sourceSets.main.resources {
srcDir('src/generated/resources')
exclude("**/*.bbmodel")
exclude("src/generated/**/.cache")
}src/main/resources/data/는 기본 소스셋에 포함되므로 별도 설정 없이 JAR에 들어갑니다.
인게임 검증
빌드된 JAR를 Minecraft 인스턴스의 mods/ 폴더에 복사하고 게임을 실행합니다.
검증 순서
-
포탈 프레임 설치 — 4×5 obsidian 프레임을 설치합니다.
# 최소 프레임 예시 (내부 2×3, 외곽 포함 4×5) O O O O O . . O O . . O O . . O O O O O -
포탈 활성화 — MagicIgniter를 들고 프레임 내부 블록을 우클릭합니다.
-
차원 진입 — 포탈 블록 안으로 걸어 들어갑니다. 화면이 전환되고 Magic Realm 차원에 도착합니다.
-
차원 상태 확인 — 진입 후 다음을 확인합니다.
확인 항목 기대 결과 하늘 색상 검은 배경 (End 스카이박스) 시간 영구 밤 (fixed_time: 18000) 침대 우클릭 폭발 (bed_works: false) F3 차원 표시 master_dimension:magic_realm -
복귀 — 복귀 포탈을 통해 오버월드로 돌아옵니다.
-
게임 종료 — ESC → Quit Game으로 Minecraft를 종료합니다.
자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
| JDK 버전 불일치 | UnsupportedClassVersionError | JDK 25 설치 후 JAVA_HOME 설정 |
| JAR를 mods/ 대신 다른 폴더에 복사 | 모드 로드 안 됨 | .minecraft/mods/ 경로 확인 |
| 데이터팩 JSON 오타 | 차원 진입 시 크래시 | JSON 파일 경로와 내용 재확인 |
| 포탈 프레임 크기 미달 | 포탈 활성화 안 됨 | 최소 3×3 내부 공간 확보 |
| 쿨다운 중 재진입 시도 | 포탈 무반응 | 쿨다운(기본 3초) 후 재시도 |
phase-6-master-dimension 완료
이 챕터로 마스터 트랙 #2 차원 모드가 완성되었습니다.
구현한 내용 요약:
| 챕터 | 내용 |
|---|---|
| 00 | 프로젝트 셋업 (Gradle, 모드 ID) |
| 01 | 차원 등록 (dimension JSON, DeferredRegister) |
| 02 | 포탈 블록 (MagicPortalBlock, 렌더링) |
| 03 | 포탈 프레임 인식 (PortalShape, 3×3~21×21) |
| 04 | 차원 진입/복귀 (쿨다운, 양방향 텔레포트) |
| 05 | 차원 룰셋 (fixed_time, bed_works, effects) |
| 06 | 마무리 + JAR 빌드 (이 챕터) |
다음 마스터 트랙으로 넘어가거나, 이 모드를 기반으로 바이옴 커스터마이징, 구조물 배치, 차원 전용 몬스터 추가 등을 시도해 보세요.