.mrpack 파일을 일반 모드팩 압축 파일로 변환하는 방법 — 그리고 압축 해제 프로그램이 실패하는 이유
.mrpack은 모드 아카이브가 아니라 매니페스트입니다. 압축을 풀면 JSON 파일만 있고 jar 파일은 없습니다. 실제 내용과 변환기가 해야 할 일은 다음과 같습니다.
.mrpack 파일의 이름을 .zip로 변경하고 열어보면 거의 아무것도 없습니다. modrinth.index.json 파일과 어쩌면 overrides/ 폴더만 있을 뿐입니다. 모드 파일은 없습니다. 이것은 손상된 것이 아니라, 의도된 형식대로 작동하는 것입니다.
내부 내용
modrinth.index.json the manifest: name, version, loader, and a list of downloads
overrides/ config files, resource packs, anything not on Modrinth
매니페스트의 각 항목은 다음과 같습니다.
{
"path": "mods/sodium.jar",
"hashes": { "sha1": "…", "sha512": "…" },
"downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
"fileSize": 812345
}
팩은 파일 자체가 아니라 참조를 제공합니다. 이것이 40개 모드 팩이 200KB밖에 되지 않는 이유이며, 모든 일반 압축 해제 프로그램이 "실패"하는 이유입니다. 추출할 것이 없기 때문입니다.
변환이 해야 할 일
modrinth.index.json을(를) 읽습니다.- 각 항목을 CDN URL에서 가져옵니다.
- 매니페스트에 있는 sha512와 각 파일을 대조하여 확인합니다. 이 단계를 건너뛰면 손상되거나 대체된 jar 파일이 팩에 포함될 수 있습니다.
- 각 파일을
path에 배치합니다. overrides/을(를) 위에 복사합니다. 오버라이드가 우선하며, 이것이 그들의 목적입니다.- 결과물을 압축합니다.
3단계는 변환기가 조용히 건너뛰는 단계입니다. 해시가 일치하지 않으면 다운로드가 잘렸거나 파일이 변경되었음을 의미합니다. 그럼에도 불구하고 설치하면 로드 시 충돌하는 팩이 생성되며, 잘못된 모드를 가리키는 오류가 발생합니다.
왜 변환해야 하는가
- mrpack을 지원하지 않는 런처. ATLauncher, MultiMC 및 수동 설치는 jar 파일 폴더를 원합니다.
- 서버 측. 서버 호스트는 거의
.mrpack을(를) 허용하지 않습니다. 그들은 모드 폴더를 원합니다. - 오프라인 설치. 변환된 팩은 더 이상 CDN이 필요하지 않습니다.
env 필드가 클라이언트와 서버를 결정합니다
각 파일은 다음을 포함합니다.
"env": { "client": "required", "server": "unsupported" }
서버 팩은 서버 측에서 unsupported로 표시된 모든 것(주로 셰이더, 미니맵, HUD 모드)을 건너뛰어야 합니다. 전체 클라이언트 모드 폴더를 서버에 복사하는 것은 렌더링 클래스를 지목하는 시작 시 충돌의 일반적인 원인입니다.
반대 방향으로
폴더에서 .mrpack을(를) 빌드하는 것은 역방향이며 한 가지 함정이 있습니다. Modrinth에 없는 모드는 매니페스트 항목이 될 수 없습니다. 이 모드는 overrides/mods/에 들어가야 하며, 이는 팩의 크기를 키우지만 작동하게 유지합니다. 이러한 모드를 조용히 삭제하면 깨끗하게 설치되지만 콘텐츠가 누락된 팩이 생성됩니다.
해시 확인 및 env 분할 처리를 통해 양방향으로 변환하려면 리소스 팩 압축 도구를 참조하십시오.