MC Toolkit

أدلة / الأوامر والبيانات

شاشات الحوار: بناء قوائم حقيقية دون مود

تمنحك حوارات حزم البيانات نافذة حقيقية تحتوي على حقول إدخال وأزرار. إليك بنية JSON، وكيف يشغّل الزر أمرًا، وكيف تقارن بحيلة قائمة الكتاب.

اعتادت قوائم الخوادم أن تُكتب ككتب ذات صفحات قابلة للنقر، أو كواجهة صندوق مزيفة بإطارات العناصر. جاءت الحوارات لتحل محل كليهما بشاشة حقيقية.

ما هو الحوار

ملف JSON في حزمة بيانات يصف نافذة:

data/<namespace>/dialog/welcome.json
{
  "type": "minecraft:notice",
  "title": { "text": "Welcome" },
  "body": [{ "type": "minecraft:plain_message",
             "contents": { "text": "Pick a class to begin." } }],
  "action": { "label": { "text": "Continue" } }
}

ثم /dialog show @p my_pack:welcome.

الأنواع

النوعالشكل
noticeنص مع زر إغلاق واحد
confirmationنعم / لا، لكل منهما إجراء خاص به
multi_actionشبكة من الأزرار
server_linksقائمة الروابط المدمجة
dialog_listقائمة تفتح حوارات أخرى

multi_action هو حصان العمل — فهو منتقي الفئات، والمتجر، وقائمة الانتقال.

الأزرار تشغّل الأوامر

{ "label": { "text": "Warp to spawn" },
  "action": { "type": "minecraft:run_command", "command": "/spawn" } }

مثل clickEvent في الدردشة، يُنفَّذ هذا بصفة اللاعب الناقر، عند مستوى صلاحياته. الزر الذي يستدعي أمرًا مخصصًا للمشرفين لا يفعل شيئًا للاعب عادي. الحل المعتاد هو هدف trigger: يشغّل الزر /trigger warp set 1 وتتولى دالة تعمل مع كل نبضة الجزء المميز بالصلاحيات.

حقول الإدخال

"inputs": [
  { "type": "minecraft:text", "key": "name", "label": { "text": "Your name" }, "max_length": 16 },
  { "type": "minecraft:boolean", "key": "pvp", "label": { "text": "Enable PvP" } },
  { "type": "minecraft:single_option", "key": "class", "label": { "text": "Class" }, "options": [
      { "id": "mage", "display": { "text": "Mage" } },
      { "id": "rogue", "display": { "text": "Rogue" } } ] }
]

تصل القيم إلى الأمر عبر زر إجراؤه minecraft:dynamic/run_command: يأخذ template الخاص به $(key) لكل حقل إدخال. الزر العادي run_command لا يستقبل شيئًا.

"action": {
  "type": "minecraft:dynamic/run_command",
  "template": "function my_pack:join {name:'$(name)',class:'$(class)'}"
}

الدالة التي يستدعيها تكون عندئذٍ ماكرو:

$say Welcome $(name), you chose $(class)

بادئة $ على السطر و$(key) للاستبدال، في كلا الطرفين. هذه هي آلية الربط بأكملها، وهي ما يجعل الحوارات مفيدة حقًا لا مجرد زينة.

لماذا يتفوق هذا على حيلة الكتاب

  • إنها شاشة، فتوقف الإدخال بدل أن تظل في سجل الدردشة.
  • حقول الإدخال موجودة فعلًا. لم يكن الكتاب يقدم سوى الروابط.
  • لا حاجة إلى عنصر. لا شيء يمكن فقدانه أو إسقاطه أو تكراره.
  • تُغلق بنظافة ولا يمكن التمرير عائدًا إليها.

الشيء الوحيد الذي لا يزال الكتاب أفضل فيه هو القراءة الطويلة — فجسم الحوار ليس مكانًا جيدًا لثلاث صفحات من الحكايات.

أنماط نقاط الطريق

تغطي الأداة نفسها نقاط طريق شريط التحديد، وأنماطها أصول حزمة موارد (assets/<namespace>/waypoint_style/) تتحكم في الرسوم ومسافات التلاشي للاعب أو الموقع المتتبع؛ ويُضبط اللون بشكل منفصل بـ /waypoint modify <target> color. مفيدة لعلامات الفريق حيث يكون شريط الزعيم تدخليًا أكثر من اللازم.

ابنِ شاشات الحوار بحقول الإدخال والأزرار، وخصّص أنماط نقاط الطريق، في Dialog Input & Waypoint Style Builder.

منشئ الحوارات وأنماط نقاط الطريق →

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

عرض الكل →