محرر NBT لإصدار Java

يدعم Minecraft Bedrock Edition وJava Edition — وجميع برمجيات الخوادم لكليهما، الشائعة والنادرة: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina وغيرها. القائمة الكاملة.

تخزّن Minecraft Java Edition بياناتها بصيغة NBT كبيرة النهاية، وتكون مضغوطة بـ gzip في معظم الحالات. أسقط أدناه أي ملف Java، مثل level.dat أو ملف UUID داخل playerdata أو servers.dat أو بنية .nbt أو مخطط WorldEdit، وسيفك المحرر ضغطه ويحلله بترتيب كبير النهاية ثم يعيده مضغوطًا بـ gzip كي تقبله اللعبة دون تغيير.

VanillaPaperSpigotPurpurFoliaFabricQuiltForgeNeoForgeSponge

أفلت ملف NBT من Java هنا

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · بيانات مقاطع مستخرجة

ممّ يتكوّن عالم Java

يمكن فتح كل ما يلي في المحرر أعلاه. ملفات المناطق (.mca) حاويات تضم قطعًا مضغوطة عديدة وليست مستند NBT واحدًا، لذا استخرج حمولة قطعة أولًا؛ يقرأ المحرر NBT الخاص بالقطعة الناتجة والمضغوط بـ zlib.

المسارالمحتوياتالضغط
world/level.datاسم العالم ونمط اللعب والقواعد ونقطة الظهور وDataVersiongzip
world/level.dat_oldالحفظ السابق للملف نفسهgzip
world/playerdata/<uuid>.datالمخزون وصندوق Ender والموقع والصحة وXP والسماتgzip
world/data/raids.dat، idcounts.dat، map_*.datحالة الغارات وعدّادات معرّفات الكيانات وعناصر الخرائطgzip
world/data/scoreboard.datالأهداف والفرق والنتائجgzip
world/region/*.mcaNBT لقطعة داخل حاوية منطقةzlib لكل قطعة
servers.datقائمة خوادم اللعب الجماعي من العميلبلا ضغط
hotbar.nbtأشرطة الأدوات المحفوظة للوضع الإبداعيبلا ضغط
*.nbt داخل حزم البياناتالبُنى التي تضعها كتل البُنى وكتل jigsawgzip

كيفية ترميز Java لبيانات NBT

  • كبير النهاية. يُخزّن كل عدد صحيح وعشري بالبايت الأعلى أهمية أولًا، بما يطابق DataOutputStream في Java.
  • جذر مسمّى. يبدأ الملف بنوع الوسم 0x0A، ثم اسم الجذر بترميز UTF-8 ومسبوق بطوله؛ وكان الاسم فارغًا تاريخيًا في level.dat.
  • UTF-8 معدّل. تستخدم السلاسل ترميز writeUTF في Java: طولًا من بايتين، وتُكتب NUL بالشكل C0 80، وتُقسّم المحارف خارج المستوى الأساسي إلى نصفين من ثلاثة بايتات (CESU-8). الأداة التي تعامل ذلك كـ UTF-8 عادي تتلف الرموز التعبيرية في أسماء العوالم؛ أما هذا المحرر فيرمّزها بصورة صحيحة.
  • gzip افتراضيًا. يتوقع NbtIo.readCompressed تدفق gzip. قد تفتح بعض الأدوات الملفات غير المضغوطة، لكن اللعبة لا تفتحها.
  • جذر بلا اسم على الشبكة. منذ 1.20.2 يرسل البروتوكول NBT بلا اسم للجذر. تُكتشف تفريغات الحزم بهذه البنية كصيغة شبكة Java هنا.

Paper وSpigot وFabric وForge — الملفات نفسها

تغيّر التفرعات ومحمّلات التعديلات طريقة تشغيل الخادم، لا طريقة كتابة العالم. تستخدم Paper وPurpur وPufferfish وFolia وFabric وQuilt وForge وNeoForge وMohist وArclight وSponge جميعها بنية NBT الخاصة بـ Vanilla، لذا ينطبق عليها كل ما في هذه الصفحة دون تغيير. تضيف التفرعات ملفات أخرى بجانب العالم مثل paper-world.yml وإعدادات التعديلات، لكنها بصيغة YAML أو TOML ولا علاقة لها بـ NBT.

قد تضيف التعديلات والإضافات مركّباتها الخاصة داخل level.dat أو playerdata. تفتح هذه الوسوم هنا مثل غيرها؛ اتركها دون تغيير ما لم تعرف كيف يستخدمها التعديل.

DataVersion وترحيل الإصدارات

تحتوي عوالم Java على العدد الصحيح DataVersion الذي يحدد تنسيق العالم ويزداد مع كل لقطة تطوير. نقاط مرجعية مفيدة: 1.16.5 هي 2586، و1.17.1 هي 2730، و1.18.2 هي 2975، و1.19.4 هي 3337، و1.20.4 هي 3700، و1.21 هي 3953. يرفض عميل أقدم من الذي كتب العالم فتحه بسبب هذا الوسم تحديدًا، وخفضه يدويًا لا يرجع بيانات القطع إلى إصدار أقدم، بل يزيل حاجز الحماية فقط. اقرأه لمعرفة الإصدار الذي كتب العالم، ولا تعدّله لفرض الرجوع إلى إصدار أقدم.

الأسئلة الشائعة

هل يمكنني فتح level.dat من Java إذا لم يُحمّل في اللعبة؟

غالبًا نعم؛ المحرر أكثر تسامحًا من اللعبة مع البايتات اللاحقة، ويبلغك بالموضع الدقيق الذي توقف عنده التحليل إذا كان الملف مبتورًا. إذا رفضه أيضًا فجرّب level.dat_old، وهو الحفظ التلقائي السابق.

هل يدعم NBT الشبكي في 1.20.2+؟

نعم. منذ 1.20.2 يحذف البروتوكول اسم الجذر. يُكتشف التفريغ بهذه البنية كصيغة شبكة Java ويمكن حفظه مجددًا إما كـ NBT شبكي أو كملف عادي ذي جذر مسمّى.

هل يمكنني تعديل قطعة من ملف منطقة .mca؟

يمكنك تعديل NBT الخاص بالقطعة بعد استخراجه من حاوية المنطقة. ملف .mca نفسه فهرس مع حمولات قطع عديدة مضغوطة بـ zlib، وهذا المحرر يعمل على مستند NBT واحد لا على الحاوية.

هل سيؤدي تعديل playerdata إلى إتلاف بيانات اللاعب؟

يحدث ذلك فقط إذا كان الخادم يعمل أثناء التعديل؛ فهو يحتفظ بحالة اللاعب في الذاكرة ويكتبها عند تسجيل الخروج، فيستبدل ملفك. أخرج اللاعب من الخادم وعدّل الملف ثم اسمح له بالاتصال مجددًا. راجع محرر playerdata.

هل يجب أن يكون level.dat مضغوطًا بـ gzip؟

يقرأ محمّل Vanilla تنسيق gzip. احفظ مع ضبط الضغط على gzip، وهو الإعداد الافتراضي إذا وصل الملف بهذه الصيغة، وستقبله اللعبة.

أدوات مرتبطة