إن كانت هناك إضافة تجدها في كل سيرفر إضافات تقريبًا فهي EssentialsX. فهي تجمع في حزمة واحدة معظم ما يبحث عنه اللاعبون في يومهم الأول: المنازل، والعودة إلى نقطة الظهور، والرسائل الخاصة، ونقاط الانتقال، وحزم البداية، وقواعد السيرفر. لكن إن ثُبّتت وتُركت على إعداداتها الافتراضية فإما ألا يعمل شيء للاعبين العاديين، وإما أن يستطيع الجميع فعل كل شيء. يشرح هذا الدليل تثبيت EssentialsX خطوة بخطوة، وضبط أهم إعداداته، وتوزيع أوامره على مجموعات الصلاحيات الصحيحة.
ما الأجزاء التي تحتاج إلى تثبيتها؟
ليست EssentialsX ملفًا واحدًا، بل مجموعة وحدات تعمل معًا. وتكفي معظمَ السيرفرات هذه الأربع:
- EssentialsX: الإضافة الأساسية، وفيها أوامر المنازل ونقاط الانتقال والرسائل الخاصة والحزم والإدارة.
- EssentialsX Spawn: تتولى الأمرين
/spawnو/setspawn، وتحدد أين يظهر اللاعبون الجدد. - EssentialsX Chat: تتحكم في شكل سطر الدردشة، وبفضلها تظهر بادئات الرتب.
- Vault: مشروع مستقل وليست جزءًا من EssentialsX. وهي الجسر الذي ينقل معلومات الصلاحيات والبادئات والاقتصاد بين الإضافات، ولا تصل بادئات LuckPerms إلى الدردشة من دونها.
إذا كنت تستخدم برنامجًا من عائلة الإضافات (Paper أو Purpur أو Spigot) فيمكنك تثبيتها من لوحة التحكم، أو رفعها إلى مجلد plugins عبر مدير الملفات. واحرص على أن تكون كل وحدات EssentialsX من الإصدار نفسه، فخلط الإصدارات هو السبب الأكثر شيوعًا لظهور الأخطاء عند التشغيل. ثم أعد تشغيل السيرفر. وعند أول تشغيل يظهر المجلد plugins/Essentials وفيه ملفات مثل config.yml وkits.yml وmotd.txt وrules.txt.
الملف config.yml: ابدأ بهذه الإعدادات
الملف config.yml طويل، وفوق كل إعداد تعليق يشرحه. ولا تحتاج إلى تغيير معظمه؛ فهذه الإعدادات تكفي للبداية. افتح الملف من مدير الملفات، وعدّله واحفظه، ثم نفّذ الأمر /essentials reload داخل اللعبة.
locale: لغة رسائل الإضافة. والأسطر التي لا ترجمة لها تبقى بالإنجليزية.teleport-cooldown: عدد الثواني التي يجب انتظارها بين انتقالين.teleport-delay: المدة التي تمر بين كتابة الأمر وحدوث الانتقال. وإذا تحرك اللاعب خلالها أُلغي الانتقال، مما يصعّب الهروب في منتصف القتال.sethome-multiple: عدد المنازل المسموح به لكل رتبة (انظر أدناه).per-warp-permission: إذا ضُبط علىtrueصارت كل نقطة انتقال تحتاج إلى صلاحية خاصة بها.
تُكتب المسافات البادئة في ملفات YAML بالمسافات العادية، ولا يُستخدم فيها حرف الجدولة أبدًا. وإن أزحت سطرًا واحدًا عن موضعه عجزت الإضافة عن قراءة الملف وكتبت خطأ في وحدة التحكم؛ لذا فمن العادات الجيدة أن تحتفظ بنسخة من الملف قبل تعديله.
المنازل: كم منزلًا لكل لاعب؟
يحفظ اللاعب موضعه الحالي منزلًا بالأمر /sethome، ويعود إليه بالأمر /home، ويحذفه بالأمر /delhome. وعند وجود أكثر من منزل يُعطى كل منزل اسمًا: /sethome mine ثم /home mine. ولتحديد أعداد مختلفة بحسب الرتبة، عدّل هذا القسم في config.yml:
sethome-multiple:
default: 2
vip: 5
الاسمان default وvip هما الجزء الأخير من عقدة الصلاحية. فلكي يتمكن لاعب من إنشاء ٥ منازل يحتاج إلى الصلاحيتين essentials.sethome.multiple وessentials.sethome.multiple.vip معًا. وسنمنحهما عبر LuckPerms لاحقًا.
نقطة الظهور واللاعبون الجدد
لتحديد نقطة الظهور، قف في المكان الذي تريده واكتب /setspawn. وبعدها يستطيع اللاعبون العودة إليه بالأمر /spawn. وتحدد EssentialsX Spawn أيضًا ما يحدث للاعبين القادمين لأول مرة، في القسم newbies من config.yml:
newbies:
announce-format: '&dWelcome, {DISPLAYNAME}!'
spawnpoint: default
kit: starter
الإعداد announce-format هو رسالة الترحيب التي يراها الجميع، وkit هو اسم الحزمة التي تُمنح تلقائيًا عند الدخول الأول؛ اتركه فارغًا إن لم ترد منح حزمة. ويُبقي كثير من السيرفرات الإعداد spawn-on-join على false حتى لا يعود اللاعب إلى نقطة الظهور إلا عند موته، لا في كل مرة يدخل فيها.
أما حماية منطقة الظهور من التخريب فمهمة منفصلة، شرحناها في مقالة حماية المناطق باستخدام WorldGuard.
الحزم: أدوات البداية
أسهل طريقة لإنشاء حزمة هي من داخل اللعبة. ضع الأغراض التي تريد منحها في حقيبتك واكتب:
/createkit starter 86400
الرقم في النهاية هو مدة الانتظار بالثواني قبل أن يستطيع اللاعب نفسه أخذ الحزمة مرة أخرى، وهي هنا يوم واحد. وتحفظ EssentialsX الحزمة في الملف kits.yml، ويمكنك تعديله لاحقًا لإضافة أغراض أو تغيير المدة. ويأخذ اللاعب الحزمة بالأمر /kit starter، وإذا كتب /kit وحده رأى قائمة الحزم المتاحة له. ولاستخدام حزمة يلزم وجود الصلاحية العامة essentials.kit والصلاحية الخاصة بها essentials.kits.starter معًا.
الرسائل: رسالة اليوم والقواعد وشكل الدردشة
- رسالة اليوم: يظهر ما تكتبه في
motd.txtعند دخول اللاعب، ويستطيع إعادة قراءته بالأمر/motd. وتبدأ رموز الألوان بالعلامة&. - القواعد: يعرض الأمر
/rulesمحتوى الملفrules.txt. - شكل الدردشة: إذا كانت EssentialsX Chat مثبتة فإن السطر
formatفي القسمchatمنconfig.ymlيحدد شكل كل سطر. فمثلًاformat: '{PREFIX}{DISPLAYNAME}&7: &f{MESSAGE}'يكتب بادئة الرتبة ثم اسم اللاعب ثم الرسالة. ولا تمتلئ{PREFIX}إلا إذا كانت Vault مثبتة وكانت هناك بادئة معرّفة في LuckPerms.
توزيع الصلاحيات باستخدام LuckPerms
كل أمر في EssentialsX مرتبط بعقدة صلاحية، ولا يستطيع اللاعبون غير المشرفين استخدامه ما لم يُمنحوها. شرحنا إنشاء المجموعات في مقالة نظام الصلاحيات والرتب باستخدام LuckPerms، وهنا ننظر إلى جانب EssentialsX فقط. هذه بداية نموذجية لمجموعة default التي ينتمي إليها الجميع:
lp group default permission set essentials.home true
lp group default permission set essentials.sethome true
lp group default permission set essentials.delhome true
lp group default permission set essentials.sethome.multiple true
lp group default permission set essentials.sethome.multiple.default true
lp group default permission set essentials.spawn true
lp group default permission set essentials.kit true
lp group default permission set essentials.kits.starter true
lp group default permission set essentials.msg true
lp group default permission set essentials.motd true
lp group default permission set essentials.rules true
lp group default permission set essentials.warp true
ولمجموعة VIP أضف الفرق فقط: lp group vip permission set essentials.sethome.multiple.vip true، وربما essentials.back للعودة إلى آخر موضع أو إلى مكان الموت. واحتفظ بعقد الإدارة مثل essentials.setspawn وessentials.setwarp وessentials.mute لمجموعتي المساعدين والمديرين فقط.
وإذا لم يستطع لاعب استخدام أمر ما، فالأمر lp verbose on في LuckPerms هو أسرع طريقة لمعرفة العقدة التي جرى التحقق منها.
أخطاء شائعة
- خلط إصدارات الوحدات. إن كانت الإضافة الأساسية من إصدار ووحدة Spawn من إصدار آخر فستظهر أخطاء عند التشغيل. حدّثها جميعًا معًا.
- منح
essentials.*. هذه العقدة الشاملة تفتح أيضًا أوامر الإدارة مثل الحظر وتغيير نمط اللعب. امنح ما يلزم واحدًا تلو الآخر. - التعديل دون إعادة التحميل. لا يكفي حفظ الملف؛ نفّذ
/essentials reloadأو أعد تشغيل السيرفر. - غياب البادئات عن الدردشة. السبب في الغالب أن Vault غير مثبتة، أو أن
{PREFIX}غير موجودة في السطرformat. - كتابة مدة الحزمة بوحدة خاطئة. المدة بالثواني، فالساعة الواحدة تُكتب
3600.
ولمعرفة كيف تتكامل EssentialsX مع بقية الإضافات الأساسية، راجع مقالة الإضافات الأساسية لسيرفر البقاء.