تحويل حزمة mrpack. إلى حزمة تعديلات (مودات) مضغوطة عادية — ولماذا تفشل برامج فك الضغط
ملف mrpack. هو مجرد بيان (manifest)، وليس أرشيفًا للتعديلات. فك ضغطه سيعطيك ملف 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
}
الحزمة ترسل إشارات مرجعية (references)، لا ملفات. لهذا السبب، حزمة تحتوي على 40 تعديلًا يكون حجم تنزيلها 200 كيلوبايت، ولهذا السبب "تفشل" كل برامج فك الضغط العامة — لا يوجد شيء لتستخرجه.
ما يجب أن يفعله التحويل
- قراءة
modrinth.index.json. - جلب كل إدخال من عنوان URL الخاص به على شبكة توصيل المحتوى (CDN).
- التحقق من كل ملف مقابل قيمة sha512 الموجودة في البيان. تخطي هذه الخطوة هو ما يسمح لملف jar تالف أو مستبدل بالدخول إلى الحزمة.
- وضع كل ملف في مساره
path. - نسخ
overrides/فوق الملفات الأخرى — التجاوزات (overrides) تفوز، هذا هو غرضها. - ضغط النتيجة.
الخطوة 3 هي التي تتجاهلها المحولات بصمت. تعني قيمة التجزئة غير المتطابقة أن التنزيل كان مبتورًا أو أن الملف قد تغير؛ تثبيته على أي حال ينتج عنه حزمة تتعطل عند التحميل مع ظهور خطأ يشير إلى تعديل خاطئ.
لماذا نفعل ذلك على الإطلاق
- مشغلات الألعاب التي لا تدعم تنسيق mrpack. مشغلات مثل ATLauncher وMultiMC وعمليات التثبيت اليدوية تتطلب مجلدًا من ملفات jar.
- من جانب الخادم. مضيفو الخوادم لا يقبلون أبدًا ملف
.mrpack؛ فهم يريدون مجلد التعديلات. - التثبيت دون اتصال. بمجرد التحويل، لم تعد الحزمة بحاجة إلى شبكة توصيل المحتوى (CDN).
حقل env يحدد ما إذا كان للعميل أم للخادم
كل ملف يحمل:
"env": { "client": "required", "server": "unsupported" }
يجب على حزمة الخادم تخطي كل ما تم تمييزه بـ unsupported على جانب الخادم — ومعظمها يكون تظليلات (shaders) وخرائط مصغرة (minimaps) وتعديلات واجهة المستخدم (HUD mods). نسخ مجلد تعديلات العميل بالكامل إلى الخادم هو السبب المعتاد لتعطل عند بدء التشغيل يشير إلى فئة عرض (rendering class).
الاتجاه الآخر
بناء ملف .mrpack من مجلد هو العكس وله فخ واحد: أي تعديل غير موجود على Modrinth لا يمكن أن يكون إدخالًا في البيان. يجب أن يوضع في overrides/mods/، مما يجعل الحزمة أكبر ولكنه يحافظ على عملها. إسقاط هذه التعديلات بصمت ينتج عنه حزمة تثبت بنجاح ولكنها تفتقر إلى المحتوى.
يمكنك التحويل في أي اتجاه، مع التحقق من التجزئة ومعالجة تقسيم env، في أدوات ضغط حزم الموارد.