Grim Anticheat — إضافة مكافحة الغش للعبة ماين كرافت
غريم أنتيتشيت (GrimAC) إضافة مفتوحة المصدر GPL-3.0 لماين كرافت 1.8–26.1.2؛ تتنبأ بحركة اللاعب بدلاً من مطابقة الأنماط وتفحص Reach وTimer،…
غريم أنتيتشيت (GrimAC) إضافة مفتوحة المصدر GPL-3.0 لماين كرافت 1.8–26.1.2؛ تتنبأ بحركة اللاعب بدلاً من مطابقة الأنماط وتفحص Reach وTimer، مع تنبيهات Discord وتخزين السجل في SQLite.
Grim Anticheat — إضافة مكافحة الغش للعبة ماين كرافت
جافا: 17 أو أحدث
إصدارات ماين كرافت المدعومة: 1.8 – 26.1.2
إصدار الإضافة: 2.3.74
إن Grim Anticheat (GrimAC) عبارة عن إضافة لمكافحة الغش في سيرفرات ماين كرافت مفتوحة المصدر بموجب ترخيص GPL-3.0. تعمل الإضافة من خلال محاكاة حركات اللاعب، بدلاً من مقارنتها بأنماط سلوك ثابتة، وهو ما يميزها عن معظم البدائل المجانية.
تتمثل المهمة الرئيسية في اكتشاف تعديلات العميل (client) غير المصرح بها والتي تمنح ميزة غير عادلة في القتال أو الحركة أو عند التفاعل مع الكتل. الإضافة نفسها لا تحظر اللاعبين — فهي تسجل الانتهاك وتفوض العقوبة إلى إضافة أخرى (LiteBans أو AdvancedBan أو أي أمر مخصص عبر الإعدادات).
النهج: التنبؤ بالحركة بدلاً من الأنماط
تعمل برامج مكافحة الغش المجانية الكلاسيكية وفقًا لأنماط السلوك المسجلة مسبقًا. هذه الطريقة لها قيود واضحة — فكل تحديث للتعديل (mod) قد يتجاوز الاكتشاف حتى يتم إضافة نمط جديد إلى قاعدة البيانات.
بدلاً من ذلك، يحتوي GrimAC على محرك محاكاة الحركة (Movement Simulation Engine). يقوم السيرفر نفسه بحساب المكان الذي يمكن أن يتواجد فيه اللاعب في تيك (tick) لعبة معين، مع مراعاة الكتل المحيطة به، وتأثيرات الجرع، وخيوط العنكبوت، وأعمدة الفقاعات، والقوارب، والخنازير، ومتجولي الجحيم (striders)، وأجنحة الإليترا، وعشرات المواقف الأخرى. إذا أرسل العميل إحداثيات تتجاوز ما هو ممكن، يتم تشغيل فحص المحاكاة (Simulation) مع حساب الإزاحة بالكتل.
بشكل منفصل، تحتفظ الإضافة بنسخة شخصية من العالم لكل لاعب. يتم ضغط القطع (Chunks) إلى 16-64 كيلوبايت باستخدام اللوحات، مما يجعل ذاكرة التخزين المؤقت خفيفة بدرجة كافية حتى مع وجود أكثر من 200 لاعب متصل. تتيح هذه البنية معالجة الكتل الوهمية التي وضعتها إضافات أخرى عبر الحزم (packets) بأمان.

مخرجات أمر /grim help في الدردشة
الفحوصات
يتم تقسيم الفحوصات إلى مجموعات وظيفية. الأسماء مأخوذة من الكود المصدري — يراها المسؤول في /grim verbose وفي رسائل الخطاف (webhook). الأسماء نفسها ليست أسماء لتعديلات غير مصرح بها — هذا هو التصنيف الداخلي للإضافة.
الحركة
Simulation — الفحص الرئيسي. يكتشف أي تغييرات في موضع اللاعب لا تتطابق مع مسار ممكن فعليًا: تسارع غير مصرح به، حركة بدون دعم، حركة عبر الكتل.
Timer, TimerLimit, NegativeTimer, VehicleTimer — يسجل تسارع الوقت الداخلي للعميل. هذا هو الأساس الذي تُبنى عليه تعديلات الاستخدام السريع للعناصر والرماية. حد الاكتشاف حوالي 1.005× من السرعة العادية — وهو أدق من معظم البدائل المجانية.
NoFall — تزييف حالة السقوط. يرسل التعديل onGround=true وهمي لإلغاء ضرر السقوط؛ الفحص يكتشف ذلك.
Phase — الحركة عبر كتلة صلبة. السلوك الأساسي للتعديلات التي تسمح لك بالمرور عبر الجدران أو الدخول إلى المناطق المحمية.
القتال
Reach — الهجوم من مسافة تتجاوز المسافة المسموح بها.
Hitboxes — هجوم يتجاوز صندوق الإصابة (hitbox) الحقيقي للهدف.
Knockback, Explosion — العميل يتجاهل الزخم الناتج عن الضربات أو الانفجارات.
Aim, Interact — دوران غير صحيح للرأس قبل الضربة، وتفاعلات مستحيلة ماديًا.
الحزم ووضع الكتل
BadPackets, PacketOrder, Crash — ترتيب الحزم غير صحيح، محاولات لتعطيل السيرفر بحزم منسقة بشكل ضار.
NoSlow — لا يتم إبطاء اللاعب أثناء الأكل، أو الرماية، أو استخدام الدرع، أو الزحف في خيوط العنكبوت.
مجموعة فحوصات وضع الكتل — تسجل وضع كتلة دون القدرة المادية على القيام بذلك: بعيدًا جدًا، في اتجاه لا يمكن الوصول إليه، في الهواء بدون دعم.
Baritone — نمط حركة الروبوتات المساعدة الآلية.
Exploit — ثغرات محددة، مثل استغلال الركض والقفز (Sprint-Jump) أثناء استخدام الإليترا.
أوامر المسؤول الأساسية
الأمر | الغرض |
| قائمة الأوامر مع أوصاف قصيرة |
| تشغيل أو إيقاف تشغيل التنبيهات في الدردشة |
| عرض كل علامة (flag) بدون التخزين المؤقت والحدود |
| إصدار العميل، العلامة التجارية (Vanilla/Fabric/Lunar/Forge)، حساسية الماوس، حالة FastMath |
| سجل مرقّم للجلسات والانتهاكات من قاعدة البيانات |
| الدخول في وضع المشاهد والانتقال الفوري إلى اللاعب |
| العودة إلى الموضع السابق |
| تنزيل سجل تصحيح الأخطاء لمعرف علامة معين |
| إعادة تحميل جميع التكوينات، وإعادة تعيين الانتهاكات النشطة |
| وضع المطور: التنبؤ مقابل الحركة الحقيقية مع الإزاحة |
| اختبار خطاف Discord بدون انتظار حدوث انتهاك حقيقي |

مخرجات أمر /grim profile في الدردشة — إصدار العميل، العلامة التجارية، حساسية الماوس وحالة FastMath للاعب
التنبيهات والعقوبات
لكل فحص عداد انتهاكات خاص به يتناقص تدريجيًا بمرور الوقت. هذا أمر أساسي: تأخير قصير (lag) أو خطأ عشوائي لا يتراكم ليصبح حظرًا دائمًا، يتم تشغيل رد الفعل فقط عند حدوث انتهاك مستقر. يتم تحديد رد الفعل نفسه بواسطة المسؤول — لكل مجموعة من الفحوصات، يتم تحديد الانتهاك الذي يجب عنده تنفيذ الأمر ومعدل التكرار.
المنطق كالتالي: تحدد رقم الانتهاك الذي سيتم بعده تشغيل رد الفعل، والفاصل الزمني — كم مرة سيتكرر بعد ذلك. السجل 100:0 kick %player% يعني أن اللاعب سيُطرد في الانتهاك المائة بالضبط، ولن يتم تنفيذ الأمر مرة أخرى. السجل 5:3 [alert] سيتم تشغيله في الانتهاك الخامس، ثم في الثامن، والحادي عشر، وما إلى ذلك — سيتم إرسال التنبيه في دردشة اللعبة للاعبين الذين لديهم صلاحية.
يمكن شغل مكان الأمر إما بعلامة خاصة من Grim نفسه ([alert] — رسالة في الدردشة، [log] — إدخال في وحدة التحكم وقاعدة البيانات، [webhook] — إرسال إلى Discord، [proxy] — النقل إلى خوادم خلفية أخرى)، أو أي أمر وحدة تحكم من السيرفر. المتغيرات المتاحة هي اسم اللاعب، واسم الفحص، وعدد الانتهاكات — عناصر نائبة قياسية. بفضل هذا، يتصل Grim بإضافة حظر خارجية بدون جسور إضافية.
خطافات ديسكورد (Discord Webhooks)
لإرسال التنبيهات إلى Discord، يحتوي GrimAC على تكامل مدمج. مظهر الرسالة قابل للتخصيص بالكامل — بدءًا من لون التضمين (embed) إلى الحقول التي سيتم عرضها. في الرسالة النهائية، يمكنك رؤية اسم اللاعب، واسم الفحص، وعدد الانتهاكات، وإصدار العميل والعلامة التجارية، ومعدل الاستجابة (ping) الحالي، و TPS للسيرفر في وقت الحدث. يتم دعم كل من القنوات العادية وقنوات المنتدى في Discord. يجب التحقق من التكوين مسبقًا — يرسل أمر /grim testwebhook رسالة اختبار دون انتظار انتهاك حقيقي.
تعديلات العميل غير المتوافقة
تحتفظ الويكي الرسمية بقائمة منفصلة من التعديلات التي إما تكسر آليات الفانيليا (اللعبة الأساسية) أو تثير إيجابيات كاذبة. القائمة ليست شاملة — يتم تحديثها في صفحة 'Known incompatible client mods' على ويكي GitHub الخاص بالإضافة. إذا حصل لاعب على تنبيهات كثيرة مع استقرار معدل الاستجابة وعدم وجود علامات على حدوث انتهاكات، فإن الفرضية الأولى هي وجود تعديل عميل من هذه القائمة.
الاحتفاظ بسجل الانتهاكات
يحتفظ GrimAC بقاعدة بيانات للسجل مرتبطة بالجلسات. الجلسة هي اتصال واحد للاعب بالسيرفر. يُظهر الأمر /grim history <اللاعب>: متى انضم اللاعب، ومدة الجلسة، وكم عدد الانتهاكات، ومن أي عميل، مع تفصيل الفحوصات.
الخوادم الخلفية المدعومة: SQLite (افتراضيًا، ملف محلي data/history.v1.db)، MySQL، PostgreSQL، MongoDB، Redis. SQLite كافٍ لسيرفر واحد. بالنسبة لشبكة بها عدة خوادم Grim، يلزم وجود خادم خلفي للشبكة بقاعدة بيانات مشتركة — عادةً MySQL أو Postgres.
يعمل الاحتفاظ (retention) بشكل منفصل — التنظيف التلقائي للسجلات القديمة. افتراضيًا، تعيش الجلسات لمدة 90 يومًا، والانتهاكات لمدة 365 يومًا. يمكن تكوين هذا أو تعطيله.

مخرجات /grim history في الدردشة
التكوين
تتوزع الإعدادات على عدة ملفات YAML في مجلد plugins/Grim/
المعلمات التي تستحق الاهتمام حقًا عند الإعداد الأول:
المعلمة | الملف | ماذا تفعل |
| config.yml | حد الإزاحة بالكتل قبل اعتبار Simulation انتهاكًا. أقل — أكثر صرامة، ويعطي المزيد من الإيجابيات الكاذبة عند حدوث تأخير. |
| config.yml | توسيع صندوق الإصابة (hitbox)を超 الحد الطبيعي للعبة. 0.0005 يسجل التجاوزات من 3.0005 كتلة. |
| config.yml | حزمة إضافية في نهاية كل تيك (tick) لاكتشاف Reach بدقة أكبر. مفيد في سيرفرات PvP 1.8؛ وإلا فإنه ينشئ حركة مرور غير ضرورية. |
| config.yml | يُمكّن الفحوصات التجريبية. لا ينبغي تشغيله دون داعٍ. |
| config.yml | عدد الثواني للمهلة الزمنية قبل طرد اللاعب تلقائيًا. |
| config.yml | طرد العملاء الذين يستخدمون إصدارات Forge 1.18.2–1.19.3 المسببة للمشاكل. |
| config.yml | نقل التنبيهات بين الخوادم الخلفية عبر وكيل (proxy). يتطلب bungee-plugin-message-channel في Velocity. |
| database.yml | المفتاح الرئيسي لحفظ السجل. |
| database.yml | مكان كتابة الانتهاكات: sqlite، mysql، postgres، mongo، redis، none. |
بقية المعلمات في config.yml (معاملات الاضمحلال، والحدود القصوى، وحدود الاستجابة لآليات محددة مثل تعزيز الألعاب النارية) تعمل على ضبط التوازن بدقة بين صرامة الاكتشاف وراحة اللاعبين الذين يعانون من ضعف الاتصال. يتركها معظم المسؤولين على إعداداتها الافتراضية — حيث تم اختيارها من قبل مؤلف الإضافة كحل وسط بين الدقة والتسامح مع ارتفاع معدل الاستجابة (ping).
استنتاج
يسجل Grim Anticheat غالبية انتهاكات الحركة والقتال ومعالجة الحزم الشائعة من خلال التنبؤ بالحركة، بدلاً من المقارنة بالأنماط. ونتيجة لذلك، فإن الإضافة مقاومة للإصدارات الجديدة من نفس التعديلات. القيد الحقيقي: لا توجد فحوصات إرشادية للتصويب التلقائي (aimbots - بناءً على حركية الماوس) أو النقر التلقائي (auto-clickers - بناءً على تردد النقر) — تم الوعد بهذه الفحوصات في فرع Premium، الذي لم يتم إصداره بعد. GrimAC مناسب للسيرفرات التي يوجد فيها دافع حقيقي لتثبيت تعديلات غير مصرح بها — ساحات حماية الأصناف النباتية (PvP)، وشبكات الألعاب المصغرة، وسيرفرات البقاء على قيد الحياة ذات الموارد باهظة الثمن، وسيرفرات الفوضى (anarchy). بالنسبة لخادم بقاء إبداعي صغير يضم 10 أصدقاء، تعد الإضافة مبالغًا فيها — فبدون وجود خطر جدي بحدوث انتهاكات، سيؤدي محرك التنبؤ إلى إهدار موارد السيرفر فحسب.
التثبيت
التثبيت النموذجي يستغرق حوالي 5 دقائق. الخطوات نفسها؛ يختلف فقط المُحمّل والبناء المطابق.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.











