عندما يبدأ لاعبون جدد بالانضمام إلى سيرفرك، تكون المشكلة الأولى في الغالب واحدة: أحدهم يحطّم المباني عند نقطة الظهور، أو تُفرَّغ صناديق منزل أحد اللاعبين، أو تُغمر ساحة السوق المشتركة بالحمم. صحيح أنه يمكن التراجع عن الضرر لاحقًا، كما شرحنا في مقالة التراجع عن التخريب باستخدام CoreProtect، لكن الأفضل ألا يقع الضرر أصلًا. ولهذا الغرض بالذات وُجدت إضافة WorldGuard: تحدد مساحة من العالم، وتمنحها اسمًا، ثم تقرر بقواعد واضحة من يحق له فعل ماذا داخلها. يشرح هذا الدليل الاستخدام الأساسي، من حماية نقطة الظهور إلى منح اللاعبين مناطقهم الخاصة.
التثبيت: WorldGuard لا يعمل وحده
يترك WorldGuard مهمة تحديد المساحات لإضافة أخرى هي WorldEdit، لذلك يجب تثبيتهما معًا. إذا كنت تستخدم برنامجًا من عائلة الإضافات (Paper أو Purpur أو Spigot) فيمكنك تثبيت الإضافتين من لوحة التحكم، أو رفعهما إلى مجلد plugins عبر مدير الملفات. اختر إصدارات متوافقة مع إصدار ماينكرافت على سيرفرك، واحرص على أن يكون إصدارا WorldGuard وWorldEdit متوافقين أحدهما مع الآخر. ثم أعد تشغيل السيرفر. وعندما ترى في وحدة التحكم أن الإضافتين حُمّلتا دون أخطاء فأنت جاهز.
يحتاج من يدير المناطق إلى صلاحية ذلك. لا بأس أن تقوم بالأمر بصفتك مشرفًا في البداية، لكن حين يكبر فريقك فالأكثر أمانًا أن توزّع الصلاحيات على مجموعات كما في مقالة نظام الصلاحيات والرتب باستخدام LuckPerms.
ما المنطقة وكيف تحددها؟
المنطقة في WorldGuard حجمٌ من العالم له حدود ثابتة. وبمجرد إنشائها يبدأ سلوك افتراضي معقول: اللاعبون الذين ليسوا أعضاء ولا مالكين فيها لا يستطيعون كسر الكتل أو وضعها أو استخدام معظم الأشياء داخلها. أي إن مجرد تعريف منطقة يمنحك حماية أساسية.
تحدد المساحة بأداة التحديد في WorldEdit:
- نفّذ الأمر
//wandلتحصل على أداة التحديد، وهي فأس خشبية. - انقر بالزر الأيسر على كتلة في إحدى زوايا المساحة التي تريد حمايتها؛ هذه هي النقطة الأولى.
- انقر بالزر الأيمن على كتلة في الزاوية المقابلة؛ هذه هي النقطة الثانية. ويمكنك أيضًا تحديد موضع وقوفك بالأمرين
//pos1و//pos2. - لا يشمل التحديد إلا الارتفاع الواقع بين النقطتين. فإن أردت حماية المساحة من أعماق الأرض حتى السماء فنفّذ
//expand vert، فيمتد التحديد إلى الحدّين السفلي والعلوي للعالم. - أنشئ المنطقة:
/rg define spawn
الأمر /rg اختصار للأمر /region، وكلاهما يؤدي العمل نفسه. اكتب أسماء المناطق بأحرف لاتينية صغيرة ودون مسافات، مثل spawn وmarket وomar-house.
حماية نقطة الظهور
في إعدادات ماينكرافت الأصلية، داخل ملف server.properties، قيمة اسمها spawn-protection. وهي تمنع غير المشرفين من تغيير الكتل ضمن نصف قطر معيّن حول نقطة الظهور. إنها حماية بسيطة لكنها خشنة: تغطي مربعًا فقط ولا تتيح أي تحكم دقيق. فإن كنت ستستخدم WorldGuard، فاجعل هذه القيمة 0 واترك الحماية كلها لـWorldGuard، حتى لا يتعارض النظامان.
بعد تعريف منطقة الظهور باسم spawn بالخطوات السابقة، تضبطها بدقة عبر الأعلام. هذا مثال لمنطقة ظهور نموذجية:
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg flag spawn tnt deny
/rg flag spawn creeper-explosion deny
/rg flag spawn fire-spread deny
/rg flag spawn greeting &aWelcome!
بهذه الإعدادات لا يستطيع اللاعبون إيذاء بعضهم عند نقطة الظهور، ولا تظهر الكائنات المعادية، ولا تُلحق الانفجارات والنار أي ضرر، ويرى كل من يدخل المنطقة رسالة ترحيب.
الأعلام: قواعد المنطقة
العلم (flag) قاعدة تفعّل سلوكًا واحدًا أو تعطّله داخل المنطقة. صيغته العامة /rg flag <region> <flag> <value>. ولإزالة علم والعودة إلى الوضع الافتراضي يكفي أن تترك القيمة فارغة: /rg flag spawn pvp. وأكثر الأعلام استخدامًا:
buildالإذن العام بكسر الكتل ووضعها. إذا ضُبط على deny مُنع الأعضاء أيضًا من البناء.
pvpهل يستطيع اللاعبون إلحاق الضرر بعضهم ببعض.
chest-accessفتح الصناديق والحاويات المشابهة.
useاستخدام الأبواب والأزرار والروافع وما شابهها.
mob-spawningظهور الكائنات داخل المنطقة.
entry / exitمنع الدخول إلى المنطقة أو الخروج منها.
greeting / farewellالرسالة التي تظهر عند الدخول وعند الخروج.
ولتطبيق علم على فئة محددة من اللاعبين فقط يوجد الخيار -g. فإن أردت مثلًا ألا يدخل ساحة القتال إلا أعضاؤها: /rg flag arena -g nonmembers entry deny. وتعني nonmembers كل من ليس عضوًا أو مالكًا في المنطقة؛ وتتوفر كذلك القيم members وowners وall.
ثمة نقطة تستحق الانتباه: العلم build deny يوقف الأعضاء أيضًا. فإن كان كل ما تريده منع الغرباء من البناء فلا تقترب من هذا العلم، لأن الحماية الافتراضية تفعل ذلك أصلًا.
إضافة الأعضاء والمالكين
في كل منطقة نوعان من الأشخاص الموثوقين. الأعضاء يستطيعون البناء واستخدام الأشياء داخلها. أما المالكون فيستطيعون ذلك أيضًا، ويديرون فوقه قائمة الأعضاء، وكذلك أعلام المنطقة إن كانت لديهم الصلاحية.
- إضافة عضو:
/rg addmember omar-house Omar - إضافة مالك:
/rg addowner omar-house Omar - إزالة عضو:
/rg removemember omar-house Sami - إزالة مالك:
/rg removeowner omar-house Omar
وبدل إضافة اللاعبين واحدًا واحدًا يمكنك إضافة مجموعة صلاحيات كاملة: فالأمر /rg addmember market g:traders يجعل كل من في مجموعة traders في إضافة الصلاحيات عضوًا في تلك المنطقة. وكلما تغيّرت عضوية المجموعة تغيّرت الحقوق في المنطقة تلقائيًا، فلا تحتاج إلى إضافة كل تاجر جديد يدويًا.
المناطق المتداخلة والأولوية
يمكن للمناطق أن تتداخل. فقد تكون لديك منطقة كبيرة باسم town، وفي داخلها قطعة أرض مستقلة لكل لاعب. وعندما تتداخل منطقتان تحدد الأولوية (priority) أيّ القواعد تسري، والرقم الأعلى هو الغالب:
/rg setpriority town 0
/rg setpriority omar-house 10
وهناك أيضًا منطقة خاصة بلا حدود تشمل العالم كله: __global__. فلمنع انتشار النار في أي مكان من العالم مثلًا، يمكنك تنفيذ /rg flag __global__ fire-spread deny. وكن حذرًا مع أعلام البناء هنا، فإعداد خاطئ واحد قد يمنع الجميع من البناء في كل مكان.
فحص المناطق وإدارتها
/rg info: يعرض مالكي المنطقة التي تقف فيها وأعضاءها وأعلامها. وإن أعطيته اسمًا عرض تلك المنطقة:/rg info spawn./rg list: يسرد المناطق في العالم الحالي./rg select spawn: يعيد تحديد حدود المنطقة؛ ويمكنك بعدها توسيع التحديد وتحديث المنطقة بالأمر/rg redefine spawn./rg remove omar-house: يحذف المنطقة. وهذا يزيل الحماية فقط ولا يمسّ المباني التي داخلها.
تُحفظ بيانات المناطق في مجلد السيرفر، في الملف plugins/WorldGuard/worlds/<world>/regions.yml. ويمكنك فتحه وتعديله من مدير الملفات، لكن الأوامر أكثر أمانًا؛ وإن عدّلت الملف فأعد تحميله بعد ذلك بالأمر /rg load.
أخطاء شائعة
- الاختبار بحساب مشرف. يستطيع المشرفون تجاوز الحماية. تحقق من عمل المنطقة بحساب ليس مشرفًا وليس عضوًا فيها.
- نسيان التوسيع العمودي. إذا اخترت نقطتين على سطح الأرض فقط وعرّفت المنطقة، فقد يتسلل اللاعبون بالحفر من تحتها أو بالبناء من فوقها. اجعل
//expand vertعادة لديك. - محاولة حل كل شيء بـ
__global__. القواعد العامة تؤثر في العالم بأكمله، فلا تضع فيها إلا ما يجب أن يسري في كل مكان فعلًا. - الظن بأن المباني تعود عند حذف المنطقة. يمنع WorldGuard الضرر لكنه لا يعكسه. فإن وقع الضرر فأنت بحاجة إلى إضافة تسجيل مثل CoreProtect.
ولمعرفة كيف يتكامل WorldGuard مع بقية إضافات سيرفر البقاء، راجع مقالة الإضافات الأساسية لسيرفر البقاء.