.mrpack dosyasını normal modpack zip'ine dönüştürmek — ve çıkarıcıların neden başarısız olduğu
Bir .mrpack mod arşivi değil, bir bildirim dosyasıdır. Sıkıştırılmış halini açtığınızda elinize bir JSON dosyası geçer, jar yoktur. İşte içinde gerçekte ne olduğu ve bir dönüştürücünün ne yapması gerektiği.
Bir .mrpack dosyasını .zip olarak yeniden adlandırıp açtığınızda neredeyse hiçbir şey bulamazsınız: bir modrinth.index.json, belki bir overrides/ klasörü. Modlar ortada yoktur. Bu bir bozulma değil — formatın tasarım gereği böyle çalışmasıdır.
İçinde ne var
modrinth.index.json the manifest: name, version, loader, and a list of downloads
overrides/ config files, resource packs, anything not on Modrinth
Bildirim dosyasındaki her girdi şöyle görünür:
{
"path": "mods/sodium.jar",
"hashes": { "sha1": "…", "sha512": "…" },
"downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
"fileSize": 812345
}
Paket, dosyaları değil referansları taşır. 40 modluk bir paketin 200 KB'lık bir indirme olmasının ve her genel amaçlı çıkarıcının "başarısız olmasının" nedeni budur — çıkarılacak bir şey yoktur.
Bir dönüşümün yapması gerekenler
modrinth.index.jsondosyasını okuyun.- Her girdiyi CDN URL'sinden indirin.
- Her dosyayı bildirimdeki sha512 ile doğrulayın. Bunu atlamak, bozuk veya değiştirilmiş bir jar'ın pakete girmesinin yoludur.
- Her birini kendi
pathkonumuna yerleştirin. overrides/, ardındanclient-overrides/veyaserver-overrides/dosyalarını üzerine kopyalayın — geçersiz kılmalar kazanır, amaçları budur.- Sonucu zip'leyin.
Dönüştürücülerin sessizce atladığı adım 3'tür. Uyuşmayan bir hash, indirmenin yarıda kesildiği veya dosyanın değiştiği anlamına gelir; yine de kurmak, yükleme sırasında yanlış modu işaret eden bir hatayla çöken bir paket üretir.
Peki neden yapılmalı
- mrpack dilini konuşmayan başlatıcılar. ATLauncher, MultiMC ve manuel kurulumlar bir jar klasörü ister.
- Sunucu tarafı. Sunucu barındırıcıları neredeyse hiçbir zaman bir
.mrpackkabul etmez; mods klasörünü isterler. - Çevrimdışı kurulum. Bir kez dönüştürüldüğünde paket artık CDN'e ihtiyaç duymaz.
env alanı istemci mi sunucu mu olacağına karar verir
Her dosya şunu taşır:
"env": { "client": "required", "server": "unsupported" }
Bir sunucu paketi, sunucu tarafında unsupported olarak işaretlenmiş her şeyi atlamalıdır — çoğunlukla shader'lar, minimap'ler ve HUD modları. Tam istemci mods klasörünü bir sunucuya kopyalamak, başlangıçta bir render sınıfını işaret eden çökmenin olağan nedenidir.
Ters yöne gitmek
Bir klasörden .mrpack oluşturmak bunun tersidir ve tek bir tuzağı vardır: Modrinth, GitHub veya GitLab'da barındırılmayan hiçbir mod bildirim girdisi olamaz — ve Modrinth'in kendisi yayımlanan paketler için yalnızca kendi CDN'ini kabul eder. Bu tür modlar overrides/mods/ içine gitmelidir; bu paketi büyütür ama çalışır durumda tutar. Bu modları sessizce düşürmek, temiz kurulan ama içeriği eksik bir paket üretir.
Bir .mrpack dosyasını, hash doğrulaması ve env ayrımı yapılmış şekilde istemci veya sunucu ZIP'ine MRPACK'ten ZIP'e Dönüştürücü ile dönüştürün.