Bir .mrpack kendi modlarının neredeyse hiçbirini içermez

Dosya bir ZIP dosyasıdır, ancak jar'lar içinde değildir. SHA-512 karmaları içeren indirme URL'lerinden oluşan bir manifest sunar; 40 KB boyutundaki bir paketin dört yüz megabayt yükleyebilmesinin — ve çevrimdışıyken başarısız olmasının — nedeni budur.
Herhangi birini yeniden adlandır .mrpack to .zip, open it, and the surprise is how
little is there. A pack with two hundred mods is often under 100 KB. The mods are not
missing — they were never included.
İçinde gerçekte ne var
| Girdi | Gerekli | İçerik |
|---|---|---|
modrinth.index.json | Evet | Manifest: her dosya, dosya yolu, boyutu, karmaları ve indirme URL'leri |
overrides/ | Hayır | Olduğu gibi kopyalanan gerçek dosyalar — yapılandırmalar, komut dosyaları, kaynak paketleri |
client-overrides/, server-overrides/ | Hayır | Aynı fikir, yalnızca o tarafa uygulanır |
Manifest şunu taşır: formatVersion, a dependencies map
naming the loader and Minecraft version, and a files array. Each file entry
holds the destination path, a fileSize, a hashes
object with sha1 and sha512, an env block marking it
required or optional per side, and one or more downloads URLs.
Neden bu şekilde inşa edildi
Yeniden dağıtım. Bir paket yazarı listedeki her modu yeniden barındırma iznine neredeyse hiçbir zaman sahip değildir, ancak her zaman yazarın kendi dosyasına bağlantı verebilir. jar dosyaları yerine URL'ler göndermek paketin paylaşılmasını yasal kılar ve sohbet üzerinden gönderilebilecek kadar küçük tutar.
Karmalar diğer yarıdır. Bir URL yarın farklı bir şey sunmaya başlayabilir; ama bir SHA-512 başlayamaz. İndirdikten sonra karmayı doğrulayan bir başlatıcı, aldığı dosyanın paket yazarının test ettiği dosya ile bayt baytına aynı olduğunu denetler.
İşlerin ters gitmesinin üç yolu
- Ağ yok, paket yok. Bir
.mrpackis an installer, not an archive. Offline it produces a folder of configs and nothing else. - Ölü bir URL ölümcüldür, atlanamaz. Bir mod listeden kaldırılırsa, girdi hâlâ bir 404 ile sonuçlanır ve yükleme gerekli olarak işaretlenmiş bir dosyada durur.
- Yalnızca sunucu ve yalnızca istemci dosyaları. Paketten çıkarılmış bir istemci örneğini bir sunucuya kopyalarsanız
yüklenmeyi reddedecek istemci tarafı modları da getirmiş olursunuz —
envflags exist precisely to keep those apart.
Bunu düz bir klasöre dönüştürme
Dönüştürmek, bir başlatıcının yaptığını yapmak anlamına gelir: manifesti oku, her dosyayı belirtilen path, verify each hash, then lay the overrides on top.
What comes out is an ordinary mods/ tree you can drop into any launcher or
upload to a host that has never heard of Modrinth.
Elle yaparken iki ayrıntıya dikkat etmeye değer. Şuna uyun: env flags
so a server build does not inherit client mods. And check the hash rather than the file
size — a truncated download and a redirected HTML error page can both land at a plausible
size, and only the hash catches them.