MC Toolkit

أدلة / استكشاف الأخطاء وإصلاحها

تحويل ملف .mrpack إلى ملف zip عادي لحزمة مودات — ولماذا تفشل برامج الاستخراج

ملف .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
}

الحزمة تحتوي على مراجع وليس ملفات. لهذا السبب تكون حزمة من 40 مودًا بحجم تنزيل 200 كيلوبايت فقط، ولهذا "يفشل" كل برنامج استخراج عام — فلا يوجد شيء لاستخراجه.

ما يجب أن يفعله التحويل

  1. اقرأ modrinth.index.json.
  2. اجلب كل مدخل من رابط CDN الخاص به.
  3. تحقق من كل ملف مقابل قيمة sha512 الموجودة في البيان الوصفي. تخطي هذه الخطوة هو السبب في دخول ملف jar تالف أو مُستبدل إلى الحزمة.
  4. ضع كل ملف في مساره path.
  5. انسخ overrides/، ثم client-overrides/ أو server-overrides/، فوق النتيجة — ملفات التجاوز (overrides) لها الأولوية، وهذا هو الغرض منها.
  6. اضغط النتيجة في ملف zip.

الخطوة الثالثة هي التي يتجاهلها المحوّلات بصمت. عدم تطابق البصمة (hash) يعني أن التنزيل كان مقتطعًا أو أن الملف تغيّر؛ وتثبيته على أي حال ينتج حزمة تنهار عند التحميل مع خطأ يشير إلى المود الخطأ.

لماذا نقوم بذلك أصلًا

  • المشغّلات التي لا تدعم mrpack. ATLauncher وMultiMC والتثبيت اليدوي تريد مجلدًا من ملفات jar.
  • جانب الخادم. مضيفو الخوادم لا يقبلون تقريبًا أبدًا ملف .mrpack؛ بل يريدون مجلد المودات.
  • التثبيت دون اتصال. بعد التحويل، لم تعد الحزمة بحاجة إلى CDN.

حقل env يحدد العميل مقابل الخادم

كل ملف يحمل:

"env": { "client": "required", "server": "unsupported" }

حزمة الخادم يجب أن تتخطى كل ما هو مُعلَّم بـ unsupported على جانب الخادم — وأغلبها مودات الإضاءة (shaders) والخرائط المصغّرة وواجهة العرض (HUD). نسخ مجلد مودات العميل بالكامل إلى الخادم هو السبب المعتاد لانهيار عند بدء التشغيل يذكر فئة عرض (rendering class).

السير في الاتجاه المعاكس

بناء ملف .mrpack من مجلد هو العملية العكسية، وفيه فخ واحد: أي مود غير مستضاف على Modrinth أو GitHub أو GitLab لا يمكن أن يكون مدخلًا في البيان الوصفي — وModrinth نفسه لا يقبل إلا شبكة CDN الخاصة به للحزم المنشورة. لذلك يجب وضعه في overrides/mods/، وهذا يجعل الحزمة أكبر حجمًا لكنه يبقيها تعمل. إسقاط تلك المودات بصمت ينتج حزمة تُثبَّت بنجاح لكنها ناقصة المحتوى.

حوّل ملف .mrpack إلى ZIP للعميل أو للخادم، مع التحقق من البصمة ومعالجة تقسيم env، عبر محوّل MRPACK إلى ZIP.

أدوات ضغط حزم الموارد →

المزيد من الأدلة

عرض الكل →