التوثيق

    ZMN Bot التوثيق

    أدلة الإعداد ومرجع الضبط لكل وحدات زمن — الحماية، الإشراف، الأدوار، المستويات، والتحكم بالوصول.

    تنقل سريع

    الأساسيات
    الوحدات

    الإشراف

    نظام إشراف كامل مع الأوامر، الإشراف التلقائي، إدارة الحالات، والاسترجاع التلقائي

    نظرة عامة

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

    ما هو مشمول

    • 19 أمر إشراف — حظر، طرد، كتم، مهلة، تحذير، والمزيد
    • 8 كواشف تلقائية — كلمات سيئة، بريد مزعج، دعوات، أحرف كبيرة، روابط، والمزيد
    • إدارة الحالات — تتبع كل إجراء بمعرفات حالات تلقائية التصاعد
    • جدولة الاسترجاع التلقائي — الحظر والكتم والقفل المؤقت ترجع تلقائياً
    • نظام التصعيد — تصعيد العقاب التلقائي بناءً على عدد التحذيرات
    • مزامنة Discord AutoMod — مزامنة القواعد مع AutoMod الأصلي في Discord

    أوامر الإشراف

    جميع أوامر الإشراف تستخدم نظام حماية الصلاحيات. يحتاج المستخدمون إما إلى الرتب المسموحة أو المستخدمين المسموحين المكوينين أو صلاحيات Discord لاستخدامها.

    عقاب المستخدم

    /banSlash Command

    Ban a user from the server

    Usage: /ban <user> [reason] [duration]
    يسترجع تلقائياً إذا تم تكوين revertAfter
    /unbanSlash Command

    Unban a previously banned user

    Usage: /unban <user_id> [reason]
    /kickSlash Command

    Kick a user from the server

    Usage: /kick <user> [reason]
    /muteSlash Command

    Mute a user (auto-creates Muted role)

    Usage: /mute <user> [reason] [duration]
    يتم جدولة الاسترجاع التلقائي عند تحديد المدة
    /unmuteSlash Command

    Remove mute from a user

    Usage: /unmute <user> [reason]
    /timeoutSlash Command

    Discord native timeout (max 28 days)

    Usage: /timeout <user> [reason] [duration]
    مهلة Discord الأصلية (أقصى 28 يوماً)
    /untimeoutSlash Command

    Remove timeout from a user

    Usage: /untimeout <user> [reason]
    /warnSlash Command

    Issue a warning (triggers escalation check)

    Usage: /warn <user> [reason]
    /unwarnSlash Command

    Remove a warning from a user

    Usage: /unwarn <user> [reason]

    إدارة القنوات

    /lockSlash Command

    Lock a channel preventing messages

    Usage: /lock [channel] [reason] [duration]
    يتم جدولة الاسترجاع التلقائي عند تحديد المدة
    /unlockSlash Command

    Unlock a previously locked channel

    Usage: /unlock [channel] [reason]
    /slowmodeSlash Command

    Set slowmode delay in a channel

    Usage: /slowmode <seconds> [channel] [duration]
    يتم جدولة الاسترجاع التلقائي عند تحديد المدة
    /clearSlash Command

    Bulk delete messages in a channel

    Usage: /clear <amount> [user] [channel] [reason]

    إشراف الصوت

    /vmuteSlash Command

    Mute a user in voice channels

    Usage: /vmute <user> [reason] [duration]
    يتم جدولة الاسترجاع التلقائي عند تحديد المدة
    /vunmuteSlash Command

    Remove voice mute from a user

    Usage: /vunmute <user> [reason]
    /vkickSlash Command

    Disconnect a user from their voice channel

    Usage: /vkick <user> [reason]
    /moveSlash Command

    Move a user between voice channels

    Usage: /move <user> <channel> [reason]

    إدارة المستخدم

    /setnickSlash Command

    Change a user's nickname

    Usage: /setnick <user> [nickname]
    اترك اللقب فارغاً لإعادة التعيين
    /caseSlash Command

    View case summary or manage case status

    Usage: /case <user> [action]

    محرك الإشراف التلقائي

    يعمل محرك الإشراف التلقائي على كل رسالة مرسلة في خادمك. يستخدم 8 كواشف قابلة للتكوين لتحديد انتهاكات القواعد وفرض الإجراءات تلقائياً. فقط الكاشف الأول المتطابق يعمل لكل رسالة لتجنب العقاب المزدوج.

    الكلمات السيئة

    يطابق محتوى الرسالة مع قائمة كلمات مخصصة و/أو القائمة الافتراضية المدمجة من حوالي 50 كلمة بذيئة/مس بة

    useDefaultListcustomWordscaseInsensitivematchWholeWord
    النص المكرر

    يكتشف الأحرف والكلمات والسطور المكررة والاستخدام المفرط للرموز التعبيرية

    maxCharRepeatsmaxWordRepeatsmaxLineRepeatsemojiLimit
    دعوات Discord

    يكتشف روابط دعوات Discord مع خيارات للسماح بالخادم الخاص ورموز دعوة محددة

    allowOwnGuildallowedInviteCodes
    الروابط الخارجية

    قائمة حظر/سماح النطاقات مع حظر مخفضات الروابط وخيارات تضمين الوسائط

    modedomainsblockShortenersallowMediaEmbeds
    الأحرف الكبيرة المفرطة

    يكتشف الرسائل ذات الأحرف الكبيرة المفرطة بناءً على عتبة النسبة المئوية

    percentThresholdminLengthminWordCount
    السبويلرات المفرطة

    يكتشف عدد كبير جداً من علامات السبويلر أو طول محتوى السبويلر المفرط

    maxSpoilersmaxSpoilerChars
    الإشارات الجماعية

    يكتشف الإشارات الجماعية للمستخدمين والرتب مع خيار حظر @everyone

    maxUserMentionsmaxRoleMentionscountDuplicatesOncebanEveryoneMention
    مكافحة البريد المزعج

    كشف البريد المزعج القائم على المعدل للرسائل والمكررات والروابط والمرفقات والرموز التعبيرية

    messagesPerWindowwindowSecondsduplicateThresholdlinkSpamThresholdattachmentSpamThresholdemojiSpamThreshold
    يمكن تمكين/تعطيل كل كاشف بشكل فردي وتكوينه بإجراء خاص وقناة سجلات وقنوات/رتب معطلة خاصة به.

    قائمة الكلمات المحظورة الافتراضية

    يتضمن كاشف الكلمات السيئة قائمة مدمجة من حوالي 50 كلمة بذيئة ومس بة باللغة الإنجليزية. هذه القائمة محافظة عمداً — تستهدف الكلمات غير المرغوب فيها عالمياً مع تقليل الإيجابيات الكاذبة.

    ألفاظ بذيئة شائعةfuck, shit, asshole, bitch, dick, ...
    خطاب كراهية / إهاناتnigger, faggot, retard, chink, ...
    محتوى جنسيporn, hentai, nude, cock, ...
    إهانات / لغة مختصرةwhore, cunt, stfu, wtf, ...

    استخدام القائمة الافتراضية

    toggle

    تمكين قائمة الكلمات المحظورة المدمجة (ممكّنة افتراضياً)

    كلمات مخصصة

    text[]

    أضف كلماتك الخاصة لتكملة أو استبدال القائمة الافتراضية. اضغط Enter بعد كل كلمة.

    عدم حساسية حالة الأحرف

    toggle

    مطابقة الكلمات بغض النظر عن الأحرف الكبيرة/الصغيرة (ممكّن افتراضياً)

    مطابقة الكلمة كاملة

    toggle

    مطابقة الكلمات الكاملة فقط باستخدام حدود الكلمات (معطل افتراضياً — يتم استخدام مطابقة السلسلة الفرعية)

    القائمة الافتراضية مخزنة في defaultBlockedWords.js ويمكن توسيعها لكل خادم عبر حقل الكلمات المخصصة في لوحة التحكم. الخوادم التي تحتاج إلى تصفية أشد يجب أن تضيف إدخالات هناك بدلاً من تعديل مصدر البوت.

    صيغة المدة

    خيارات المدة في أوامر الإشراف تقبل صيغة مختصرة بسيطة. اجمع الوحدات لمدد دقيقة.

    وحدات المدة

    sثوانٍ30s = 30s
    mدقائق10m = 600s
    hساعات1h = 3600s
    dأيام7d = 604800s

    أمثلة

    10m10m — 10 دقائق
    1h1h — ساعة واحدة
    30s30s — 30 ثانية
    1d12h1d12h — يوم و12 ساعة
    7d7d — 7 أيام
    2h30m2h30m — ساعتان و30 دقيقة
    يمكنك جمع وحدات متعددة بأي ترتيب. إذا لم يتم تحديد وحدة، يفترض أنها ثوانٍ. الحد الأقصى لمدة مهلة Discord هو 28 يوماً.

    إجراءات الاسترجاع التلقائي المدعومة

    عند تحديد مدة، يتم استرجاع الإجراء تلقائياً عند انتهاء الوقت. على سبيل المثال، /mute @user 10m سيقوم بإلغاء كتم المستخدم بعد 10 دقائق.

    حظر → إلغاء حظرauto-revert
    كتم → إلغاء كتمauto-revert
    كتم صوتي → إلغاء كتم صوتيauto-revert
    قفل → إلغاء قفلauto-revert
    وضع بطيء → إعادة تعيينauto-revert
    مهلة — Discord الأصليةDiscord native
    عندما يحدد المشرف خيار المدة، يتم دائماً جدولة الاسترجاع التلقائي بغض النظر عن إعداد autoRevert. الإعداد يتحكم فقط في ما إذا كان يتم استخدام المدة الافتراضية عندما لا يتم تحديد مدة.

    Auto-Revert & Scheduler

    Duration-based moderation actions automatically schedule a revert. When a moderator specifies a duration (e.g., /mute @user 10m), the bot schedules an auto-unmute for 10 minutes later.

    1Command with Duration

    Moderator runs a command with a duration option (e.g., /mute @user 10m). The action is applied immediately.

    2Schedule Created

    A ScheduledAction document is stored in MongoDB with the revert action (e.g., unmute) and fireAt timestamp.

    3Periodic Sweep

    The scheduler service runs a periodic sweep, finding all actions where fireAt has passed. It uses broadcastEval to execute on the correct shard.

    4Auto-Revert Executed

    The revert action runs (e.g., unmute), a companion "system" case is created, and the ScheduledAction document is removed.

    نظام التصعيد

    يقوم نظام التصعيد بتصعيد العقوبات تلقائياً بناءً على عدد تحذيرات المستخدم. عند إصدار تحذير، يتحقق النظام من إجمالي تحذيرات المستخدم النشطة مقابل القواعد المكوّنة.

    مثال قواعد التصعيد

    3 warns→ Mute (1h)
    5 warns→ Kick
    7 warns→ Ban

    قواعد التصعيد

    rules[]

    حدد عتبات عدد التحذيرات والإجراءات التلقائية المقابلة. تحدد كل قاعدة عدد التحذيرات ونوع الإجراء والمدة الاختيارية.

    إدارة الحالات

    كل إجراء إشراف وأمان ينشئ حالة بمعرف حالة تلقائي التصاعد. تتبع الحالات دورة حياة الإجراء الكاملة ويمكن إدارتها من Discord ولوحة التحكم.

    حقول الحالة

    Case IDAuto-incrementing integer
    Typeban, mute, kick, warn, timeout, ...
    Sourcecommand, automod, security, escalation, system
    Statusopen → reviewing → resolved → closed
    Activetrue/false (action still in effect)

    دورة حياة الحالة

    OpenReviewingResolvedClosed

    مديرو الحالات

    يمكن لمديري الحالات تغيير حالة الحالة من لوحة التحكم وأمر /case. يتم التحقق من الصلاحية عبر كل من وحدتي الإشراف والأمان:

    • مديرو حالات الإشراف: moderation.master.caseManagerRoles + caseManagerUsers
    • مديرو حالات الأمان: security.caseManagerRoles + caseManagerUsers
    • مالك الخادم: لديه دائماً صلاحية إدارة الحالات

    التكوين

    الإعدادات الرئيسية

    رتب القائمة البيضاء

    roles

    رتب معفاة من جميع إجراءات الإشراف

    مستخدمو القائمة البيضاء

    users

    مستخدمون معافون من جميع إجراءات الإشراف

    رتب التنبيه

    roles

    رتب تتلقى إشعارات رسائل خاصة لأحداث الإشراف

    مستخدمو التنبيه

    users

    مستخدمون يتلقون إشعارات رسائل خاصة لأحداث الإشراف

    رتب مدير الحالات

    roles

    رتب يمكنها إدارة حالة الحالة

    مستخدمو مدير الحالات

    users

    مستخدمون يمكنهم إدارة حالة الحالة

    رتب المشرفين

    roles

    رتب تعامل كمشرفين لفحوصات التسلسل الهرمي

    رتب المشرفين

    roles

    رتب تعامل كمشرفين لفحوصات الصلاحيات

    إعدادات لكل أمر

    يمكن تكوين كل من أوامر الإشراف الـ 19 بشكل فردي:

    ممكّن

    toggle

    تشغيل أو إيقاف هذا الأمر/الكاشف

    طلب سبب

    toggle

    إجبار المشرفين على تقديم سبب

    قناة السجلات

    channel

    قناة لسجلات هذا الأمر

    الرتب المسموحة

    roles

    رتب يمكنها استخدام هذا الأمر (بالإضافة إلى صلاحيات Discord)

    المستخدمون المسموحون

    users

    مستخدمون يمكنهم استخدام هذا الأمر

    القنوات المعطلة

    channels

    قنوات لا يمكن استخدام هذا الأمر/الكاشف فيها

    الرتب المعطلة

    roles

    رتب لا يمكن استهدافها بهذا الأمر / رتب معفاة من هذا الكاشف

    المدة الافتراضية

    number

    المدة الافتراضية بالثواني (للكتم والمهلة والكتم الصوتي)

    الاسترجاع التلقائي

    toggle

    استرجاع تلقائي بعد المدة الافتراضية عندما لا يتم تحديد مدة

    الاسترجاع بعد

    number

    ثوانٍ بعد الاسترجاع التلقائي (عندما يكون الاسترجاع التلقائي ممكّناً)

    إعدادات لكل حدث (الإشراف التلقائي)

    يمكن تكوين كل من كواشف الإشراف التلقائي الـ 8 بشكل فردي:

    ممكّن

    toggle

    تشغيل أو إيقاف هذا الأمر/الكاشف

    الإجراء

    select

    ما يحدث عند التشغيل: حذف، تحذير، كتم، مهلة، طرد، أو حظر

    المدة

    number

    مدة الإجراء (مثلاً كتم لمدة 600 ثانية)

    قناة السجلات

    channel

    قناة لسجلات هذا الأمر

    القنوات المعطلة

    channels

    قنوات لا يمكن استخدام هذا الأمر/الكاشف فيها

    الرتب المعطلة

    roles

    رتب لا يمكن استهدافها بهذا الأمر / رتب معفاة من هذا الكاشف

    رسالة خاصة عند الإجراء

    رسالة خاصة عند الإجراء

    toggle

    إرسال رسالة خاصة للمستخدم المستهدف عند تطبيق إجراء إشراف

    نص الرسالة الخاصة

    text

    قالب رسالة مخصصة. العناصر النائبة: {action}، {server}، {reason}

    template
    You were {action} in {server} for: {reason}

    سجلات المضمّنة

    جميع أوامر الإشراف ترسل مضمّنات غنية إلى قناة السجلات المكوّنة. هذه المضمّنات موحدة بتنسيق ثابت لسهولة المسح:

    • رمز تعبيري + عنوان الإجراء: 🔨 Ban, 👢 Kick, 🔇 Mute, ⚠️ Warn, 🔒 Channel Locked, etc.
    • ترميز الألوان: Red (ban), orange-red (kick), amber (mute/timeout), green (un-commands), yellow (warn), grey (channel ops), blue (setnick)
    • صورة مصغرة: Target user avatar (or moderator avatar for channel actions)
    • الحقول: Target, Moderator, Duration, Auto-Revert, Reason, Channel
    • التذييل: GuildName • Case #ID
    • الطابع الزمني: When the action was taken

    الردود المؤقتة

    يتلقى المشرفون مضمّناً مضغوطاً كرد مؤقت يؤكد الإجراء. تستخدم تنسيقاً مبسطاً: رمز تعبيري + اسم الإجراء + الهدف، مع معرف الحالة في التذييل.

    مزامنة Discord AutoMod

    يمكن لـ ZMN Bot مزامنة إعدادات أحداث الإشراف مع قواعد AutoMod الأصلية في Discord. هذا يوفر طبقة إضافية من الحماية تعمل حتى لو كان البوت غير متصل مؤقتاً.

    القواعد المتزامنة

    • Bad Words → Discord KEYWORD filter (uses customWords only)
    • Discord Invites → Discord KEYWORD filter (regex pattern)
    • Mass Mentions → Discord MENTION_SPAM filter
    • Excessive Caps → Discord KEYWORD filter (regex pattern)
    تكون القواعد المتزامنة مسبوقة بـ ZMN: في إعدادات AutoMod في Discord. يقوم البوت بتنظيف قواعد ZMN القديمة قبل إنشاء قواعد جديدة في كل مزامنة.

    أفضل الممارسات

    الإعداد الموصى به

    • ابدأ بكواشف الإشراف التلقائي مع إجراء الحذف قبل التصعيد إلى تحذير/كتم
    • استخدم requireReason: true لأوامر الحظر والطرد والكتم
    • كوين رتب مدير الحالات حتى يتمكن فريق الإشراف من إدارة الحالات من لوحة التحكم
    • قم بإعداد قواعد التصعيد للتعامل تلقائياً مع المخالفين المتكررين
    • استخدم disabledChannels لقنوات أوامر البوت حيث لا حاجة لكشف البريد المزعج
    • قم بتمكين DM on Action حتى يعرف المستخدمون سبب عقوبتهم
    • استخدم خيارات المدة للإجراءات المؤقتة — الاسترجاع التلقائي يضمن عدم نسيان شيء

    أخطاء شائعة

    • تعيين إجراء الإشراف التلقائي إلى حظر للمخالفات الأولى (عدواني جداً)
    • عدم تكوين رتب القائمة البيضاء (رسائل البوت/المشرف يتم وضع علامة عليها)
    • نسيان تعيين قناة سجلات (لا رؤية للإجراءات)
    • استخدام كتم/حظر دائم بدون مدة عندما يكون الإجراء المؤقت مقصوداً
    • عدم اختبار قواعد التصعيد قبل التمكين (يمكن أن يؤدي إلى حظر غير متوقع)
    • إضافة الكثير من الكلمات المخصصة إلى badWords بدون matchWholeWord (يسبب إيجابيات كاذبة)
    متطلب تسلسل البوت: يجب أن يكون رتبة البوت أعلى من رتبة Muted وأي رتب يحتاج لإدارتها. لأوامر الحظر/الطرد، يحتاج البوت صلاحيات Discord المقابلة. لأمر الكتم، يقوم البوت تلقائياً بإنشاء رتبة Muted وتكوين أذونات القناة.