ما هي NBT في الواقع

NBT اختصار لـ Named Binary Tag (الوسم الثنائي المُسمّى)، وهي صيغة بيانات ثنائية صمّمها Minecraft بنفسه. فكرتها الأساسية أن كل جزء من البيانات يحمل ثلاثيًّا: «الاسم + نوع البيانات + القيمة»، ثم تُنظَّم متداخلةً في بنية شجرية. ومن الأنواع الشائعة: الأعداد الصحيحة، والأعداد العشرية، والسلاسل النصية، والقوائم، إضافةً إلى «الوسم المركّب (Compound)» الذي يمكن أن يتداخل بداخله المزيد.

تُخزَّن كثير من البيانات المهمة في العالم باستخدام NBT:

  • level.dat —— بيانات العالم الوصفية: الاسم، ووضع اللعب، والبذرة (seed)، ونقطة الظهور، وقواعد اللعبة، والإصدار وغيرها، وهو في ذاته ملف NBT (وعادةً ما يكون مضغوطًا بصيغة gzip).
  • الكيانات وكيانات الكتل —— تُسجَّل بصيغة NBT أيضًا بياناتٌ مثل الكائنات، والعناصر داخل الصناديق، ونصوص اللافتات.
  • بيانات اللاعب —— الحقيبة، والموقع، والحالة وغيرها هي كذلك NBT.

إن أردت التعمّق في ما يحتويه level.dat وما الذي يحدث عند فقدانه، فاطّلع على ما هو level.dat الخاص بالعالم.

لماذا يظهر بمحرر النصوص كرموز مشوّهة

لأن NBT ثنائية وليست نصًّا صِرفًا —— فهي تضغط علامات الأنواع والقيم مباشرةً إلى بايتات، كما أن level.dat غالبًا ما يكون مضغوطًا بصيغة gzip، لذا فإن فتحه مباشرةً بمحرر نصوص أو محرر سطور لن يُظهر سوى رموز مشوّهة. لرؤية المحتوى بوضوح تحتاج إلى محرّر NBT مخصّص، أو ببساطة تدع اللعبة نفسها تقرؤه.

وهذا يفسّر سوء فهم شائع: غالبًا ما يكون تعذّر «فتح» العالم ليس بسبب تلف محتوى NBT، بل بسبب خطأ في بنية التحزيم —— مثل أن يكون level.dat ليس في جذر الأرشيف المضغوط، أو أن هناك مجلدًا إضافيًّا يلتفّ حوله. هذه المشكلات البنيوية لا علاقة لها بـ NBT نفسها؛ راجع ما هو ملف region/.mca في إصدار Java لفهم كيفية تنظيم ملفات العالم في جانب Java.

كيف يتعامل TopoBlocks مع هذه الـ NBT

عند فتح أو تشخيص عالم .mcworld / .zip / إصدار Java، يقوم TopoBlocks بـقراءة بِنى NBT مثل level.dat، لتحديد نوع الملف والإصدار وما إذا كانت البنية سليمة وما إذا كانت هناك ملفات مفقودة. وللتعرّف على المكان الذي توضع فيه ملفات الحفظ هذه عادةً وكيف تبدو، اطّلع على أين توجد ملفات حفظ عوالم Minecraft.

هناك بضع نقاط ينبغي توضيحها:

  • مجاني افتراضيًّا ويجري على جهازك. قراءة NBT أثناء التشخيص ليست إلا لتحديد المشكلة، ولا تحتاج إلى رفع العالم إلى السحابة؛ أما الميزات التي تشمل النسخ الاحتياطي السحابي فتتطلب إذنك الصريح.
  • لا يُستبدل الملف الأصلي أبدًا. حتى عند الإصلاح، يُنشأ ملف جديد مع الحفاظ على الملف الأصلي وقيمة التجزئة (hash) للتتبّع —— ولا يُكتب فوق NBT الأصلية مباشرةً.
  • حدود صادقة. يعالج إصلاح البنية مشكلات الملف / التحزيم / البنية؛ أما إذا كانت بيانات NBT نفسها تالفة بشدّة، فقد لا ينجح الإصلاح البسيط في إنقاذها، وعندئذٍ يمرّ التلف المعقّد عبر الإصلاح المتقدّم (¥9/المرة)، ويُعرض قبل الدفع وصفُ المشكلة واحتمال النجاح والمخاطر، ويُسترد المبلغ تلقائيًّا عند الفشل، والأسعار المعتمدة هي الظاهرة داخل التطبيق.

باختصار: NBT هي «اللغة الداخلية» التي يخزّن بها Minecraft بيانات العالم، وفهمها يساعدك على إدراك سبب تعذّر فتح بعض العوالم، وعلى معرفة الطبقة التي يجري العمل عليها فعليًّا أثناء الإصلاح.