Bir mrpack, zip olduğu konusunda yalan söyleyen bir zip'tir
Bir .mrpack dosyasını .zip olarak yeniden adlandırdığınızda modları değil, bir manifest ve overrides klasörü elde edersiniz — jar dosyaları Modrinth'in CDN'inde bulunur ve hash ile indirilir.
Bir .mrpack bir ZIP arşividir, dolayısıyla .zip olarak yeniden adlandırıp çıkarmak işe yarar — ve neredeyse hiçbir işe yarar şey üretmez. Bir modrinth.index.json, bir overrides klasörü elde edersiniz ve hiç mod olmaz. Jar dosyaları hiçbir zaman içinde değildi.
Modlar neden eksik
Modrinth paketleri yük değil, manifest saklar. modrinth.index.json içindeki her giriş, bir indirme URL'sinin yanı sıra o URL'nin döndürmesi gereken dosya için bir SHA-1 ve SHA-512 hash'i listeler. Başlatıcı manifesti okur, her dosyayı indirir, hash'i doğrular ve ancak ondan sonra onu örneğe bırakır.
Bu tasarım paketleri küçük tutar ve bir paketin her jar'ı yeniden yüklemeye gerek kalmadan güncellenmesini sağlar. Aynı zamanda, bir kez çözümlenene kadar bir paketin çevrimdışı işe yaramaz olduğu anlamına gelir.
Manifest aslında ne içerir
| Alan | Anlamı |
|---|---|
formatVersion | Manifest şema sürümü |
game | Her zaman "minecraft" — sürümler dependencies içinde yaşar |
files | path, hashes, downloads, env dizisi |
dependencies | Önce kurulacak yükleyici ve Minecraft sürümleri |
Her dosyadaki env alanı, insanların gözden kaçırdığı alandır. client ve server için ayrı ayrı, dosyanın required, optional veya unsupported olup olmadığını söyler — ve env değeri olmayan bir dosya her ikisinde de gereklidir. Yalnızca istemci olarak işaretlenmiş bir mod, bir sunucunun mods klasörüne hiç kopyalanmamalıdır — bunu yapmak, açılmayı reddeden bir sunucunun yaygın bir nedenidir.
Hash kontrolü isteğe bağlı değildir
İndirilen bir dosyanın SHA-1'i manifestle eşleşmiyorsa, dosya yanlıştır: kesilmiş bir indirme, jar olarak kaydedilmiş bir CDN hata sayfası veya kurcalanmış bir ayna. Doğrulamayı atlayan bir dönüştürücü, bozuk bir örneği memnuniyetle paketler. Doğrulama, bunu rastgele bir yeniden paketlemeye güvenmek yerine yerel olarak yapmanın tüm nedenidir.
İstemci ile sunucu çıktısı
Aynı manifest, hedefe bağlı olarak iki farklı arşiv üretir:
- İstemci paketi — her şey, artı örnek kökünde birleştirilmiş
overrides, ZIP kabul eden bir başlatıcı için hazır. - Sunucu paketi —
env.serverdeğeriunsupportedolan girişleri atla, gerisini koru veclient-overrides/yerineoverrides/üzerineserver-overrides/katmanla.
Yalnızca Java Edition. Bedrock'un eşdeğer bir formatı yoktur; Bedrock eklentileri tamamen farklı bir şekle sahip bir manifest.json içeren .mcaddon/.mcpack arşivleridir ve hiçbir Modrinth paketi bunlara çözümlenmez.
Overrides üzerine yazar, birleştirmez
overrides/ altındaki dosyalar, modlar yerleştirildikten sonra örneğin üzerine kopyalanır. Overrides içindeki bir yapılandırma dosyası, modun varsayılanını tamamen değiştirir. Bir paket overrides içinde bir yapılandırma gönderiyorsa ve siz de bu yapılandırmayı örnekte düzenliyorsanız, bir sonraki çözümlemede overrides kopyası kazanır.
Bir manifesti dönüştürün, her hash'i doğrulayın ve MRPACK to ZIP Converter ile başlatıcıya hazır veya sunucuya hazır bir ZIP elde edin.