본문으로 건너뛰기
버전: Minecraft 26.2

빌드·실행·배포

명령 한눈에 보기​

명령하는 일
build컴파일, poly.mod.json 검증(validatePolyModJson), 모드 jar 생성(build/libs/)
runClientPoly 모드 로더와 이 모드로 클라이언트 실행(run/client)
runServer전용 서버 실행(run/server). EULA 동의 필요
gameTests "-PpolyTests=crystal_garden:*"모드의 게임 내 테스트를 게임 테스트 서버에서 실행(창 없음)
worldCreateSaveTest모드를 로드해 월드를 만들고 저장한 뒤, build.gradle.kts에 적은 로그 줄이 나오는지 확인(창 없음)
clientWorldReloadTest클라이언트에서 월드를 만들고 다시 열기(창이 열림)
serverBootSmokeTest전용 서버를 EULA 확인 단계까지 부팅해 확인

빌드​

.\gradlew.bat build

빌드하면 build/libs/에 모드 jar가 생깁니다.

게임 실행​

.\gradlew.bat runClient
  • 클라이언트는 run/client에서 실행되며 오프라인 계정(PolyDev)을 사용합니다.
  • 창 제목이 Minecraft* <Ver k="minecraft" />(모드가 적용됐다는 표시)이면 Poly 모드 로더를 거쳐 실행된 것입니다.
전용 서버와 EULA

runServer를 실행하려면 Minecraft EULA에 동의해야 합니다. Poly 모드 로더는 사용자를 대신해 동의하지 않습니다. 내용을 직접 읽어 보고 동의한다면 run/server/eula.txt에 eula=true를 직접 적으세요.

테스트​

.\gradlew.bat gameTests "-PpolyTests=crystal_garden:*" # 게임 내 테스트
.\gradlew.bat worldCreateSaveTest # 월드 생성·저장과 로그 확인

게임 내 테스트를 작성하는 방법은 테스트에서 설명합니다.

배포​

build/libs/에 생긴 jar가 곧 모드입니다. 플레이어는 설치 프로그램으로 Poly 모드 로더를 설치한 뒤 이 jar를 런처 폴더의 mods/에 넣습니다. 개발 중에는 run/client/mods/(서버는 run/server/mods/)에 넣거나 runClient로 바로 실행하면 됩니다.

서버와 클라이언트는 같은 버전으로

서버와 클라이언트가 같은 콘텐츠를 사용하는 모드는 양쪽에 같은 버전의 jar를 넣어야 합니다. 게임이 블록 상태 같은 콘텐츠를 번호로 맞추기 때문입니다.

mods/ 폴더에 넣은 jar는 다음과 같이 처리합니다.

  • Poly 모드(poly.mod.json)는 로드합니다.
  • Fabric 모드는 엔트리포인트만 쓰는 경우에 한해 Experimental로 로드합니다. 자세한 내용은 호환성을 참고하세요.
  • 그 밖의 모드는 로드하지 않고 이유를 로그에 남깁니다.
Buy me a coffee