أدلة / استكشاف الأخطاء وإصلاحها
ملف mrpack هو أرشيف ZIP يكذب بشأن كونه ZIP
إعادة تسمية ملف .mrpack إلى .zip تمنحك ملف manifest ومجلد overrides، وليس المودات — فملفات jar موجودة على شبكة Modrinth CDN ويتم جلبها عبر الهاش.
ملف .mrpack هو أرشيف ZIP، لذا إعادة تسميته إلى .zip واستخراجه ينجح — لكنه لا ينتج شيئًا مفيدًا تقريبًا. تحصل على modrinth.index.json ومجلد overrides، ولا تحصل على أي مودات إطلاقًا. فملفات jar لم تكن بالداخل أصلًا.
لماذا المودات مفقودة
حزم Modrinth تخزّن ملف manifest وليس محتوى فعليًا. كل مدخل في modrinth.index.json يسرد رابط تنزيل بالإضافة إلى هاش SHA-1 وSHA-512 للملف الذي يُفترض أن يعيده ذلك الرابط. يقرأ المشغّل ملف manifest، ويجلب كل ملف، ويتحقق من الهاش، وعندها فقط يضعه في النسخة.
هذا التصميم يُبقي الحزم صغيرة ويتيح تحديث الحزمة دون إعادة رفع كل ملف jar. كما يعني أيضًا أن الحزمة عديمة الفائدة دون اتصال بالإنترنت حتى يقوم أحدهم بحلّها مرة واحدة.
ما يحتويه ملف manifest فعليًا
| الحقل | المعنى |
|---|---|
formatVersion | إصدار مخطط ملف manifest |
game | إصدار Minecraft المستهدف والمحمّل |
files | مصفوفة من path وhashes وdownloads وenv |
dependencies | إصدارات المحمّل وMinecraft المراد تثبيتها أولًا |
حقل env في كل ملف هو ما يغفل عنه الناس. فهو يحدد ما إذا كان الملف client أو server أو كليهما. المود المحدد كـ client-only لا ينبغي نسخه إلى مجلد mods الخاص بالسيرفر إطلاقًا — والقيام بذلك سبب شائع لسيرفر يرفض الإقلاع.
التحقق من الهاش ليس اختياريًا
إذا لم يتطابق هاش SHA-1 لملف تم تنزيله مع ملف manifest، فالملف خاطئ: تنزيل مقطوع، أو صفحة خطأ من CDN محفوظة كملف jar، أو مرآة تم التلاعب بها. المحوّل الذي يتخطى التحقق سيعبّئ نسخة معطوبة بكل سرور. التحقق هو السبب الكامل للقيام بذلك محليًا بدلًا من الوثوق بإعادة تجميع عشوائية.
مخرجات العميل مقابل السيرفر
ينتج ملف manifest نفسه أرشيفين مختلفين حسب الهدف:
- حزمة العميل — كل شيء، بالإضافة إلى
overridesمدموجة في جذر النسخة، جاهزة لمشغّل يقبل ملف ZIP. - حزمة السيرفر — تخطَّ مدخلات
env: client، واحتفظ بـenv: serverوالمدخلات غير المحددة، وأزل إعدادات client-only من overrides.
لإصدار Java Edition فقط. لا يوجد لـ Bedrock تنسيق مكافئ؛ فإضافات Bedrock هي أرشيفات .mcaddon/.mcpack مع manifest.json بشكل مختلف تمامًا، ولا تُحلّ أي حزمة Modrinth إليها.
ملفات overrides تستبدل ولا تدمج
تُنسخ الملفات الموجودة تحت overrides/ فوق النسخة بعد وضع المودات. ملف الإعدادات في overrides يستبدل الإعداد الافتراضي للمود بالكامل. إذا شحنت حزمة إعدادات في overrides وقمت أيضًا بتعديل ذلك الإعداد في النسخة، فنسخة overrides هي التي تفوز عند الحل التالي.
حوّل ملف manifest، وتحقق من كل هاش، واحصل على ملف ZIP جاهز للمشغّل أو للسيرفر عبر محوّل MRPACK إلى ZIP.