Tyson
admin@exexosixz
Published Projects (2)

K AegisMod
# 🛡️ AegisMod - บอท Discord AutoMod & Security อัจฉริยะ > **AegisMod** คือบอทระบบดูแลความปลอดภัยและจัดระเบียบข้อความสำหรับเซิร์ฟเวอร์ Discord ยุคใหม่ พัฒนาด้วย Python 3.11 และ discord.py 2.7+ ออกแบบมาเพื่อตรวจจับและระงับข้อความสแปม โฆษณา ลิงก์ไม่พึงประสงค์ และคำต้องห้ามได้อย่างแม่นยำ พร้อมระบบ **Anti-Bypass Engine** ป้องกันเทคนิคการหลบเลี่ยงทุกรูปแบบ เช่น ฟอนต์ตัวหนาแฟนซี, อักขระล่องหน, และการเคาะเว้นวรรค ช่วยให้เซิร์ฟเวอร์ปลอดภัยและห้องแชทสะอาดตาอยู่เสมอ --- ## 🌟 จุดเด่นและฟีเจอร์หลัก (Core Features) ### 1. 🛡️ เอนจินตรวจจับการหลบเลี่ยงอัจฉริยะ (Anti-Bypass Engine) - **Unicode NFKD/NFKC Normalization:** ถอดรหัสฟอนต์ตัวหนา/ตัวเอียงแฟนซี เช่น `𝗖𝗵𝗮𝘆𝗲𝗻`, `𝔥𝔞𝔠𝔨` หรือตัวอักษรแบบ Full-width ให้กลับเป็นตัวอักษรมาตรฐานก่อนนำไปตรวจสอบ ป้องกันการใช้ฟอนต์แปลกๆ เพื่อหลบเลี่ยงการแบน - **Zero-Width Character Stripping:** ลบอักขระล่องหนทุกชนิด (`\u200b`, `\ufeff`, `\u200c`, `\u200d`, `\u2060`, `\u00ad` ฯลฯ) ที่มักถูกนำมาแทรกคั่นระหว่างตัวอักษร - **Anti-Spacing (Collapse Matching):** ดักจับคำที่พยายามเคาะเว้นวรรค เช่น `b a d w o r d` หรือใส่จุดคั่น `f.i.v.e.m` - **ระบบคัดกรอง 3 ระดับ (Match Types):** - `contains` : ตรวจจับเมื่อมีคำนี้เป็นส่วนหนึ่งของข้อความ (ค่าเริ่มต้น) - `exact` : ตรวจจับเฉพาะเมื่อตรงทั้งคำ (Word Boundary `\b`) เพื่อป้องกันการแบนคำย่อยผิดพลาด - `regex` : รองรับ Regular Expressions สำหรับเงื่อนไขขั้นสูง ### 2. 🔗 ระบบบล็อกลิงก์เชิญ & เว็บฟิชชิ่ง (Invite & Phishing Blocker) - ดักจับลิงก์คำเชิญ Discord ทุกรูปแบบโดยอัตโนมัติ (`discord.gg/*`, `discord.com/invite/*`) - ระบบบล็อกโดเมนอันตราย (Blocked Domains) ดักจับเว็บฟิชชิ่งและเว็บหลอกแจกของรางวัล/Steam Gift Card ### 3. 💬 ช่องแชทสะอาดตา (Auto-Vanishing Alerts) - **ลบข้อความทันที:** เมื่อตรวจพบข้อความผิดกฎ ข้อความนั้นจะถูกลบทันที - **การ์ดเตือนลบตัวเองอัตโนมัติ:** ส่งการ์ด Embed แจ้งเตือนผู้กระทำผิด และจะ**ลบตัวเองทิ้งอัตโนมัติภายใน 5 วินาที** ไม่ทิ้งข้อความขยะไว้ในห้อง - **เลือกโหมดเตือนได้ 3 รูปแบบ:** - `temp_message` : แจ้งเตือนในห้องและลบอัตโนมัติใน 5 วินาที (แนะนำ) - `silent` : ลบข้อความเงียบๆ โดยไม่ส่งการ์ดแจ้งเตือน - `dm` : ลบข้อความและส่งข้อความแจ้งเตือนผ่านแชทส่วนตัว (DM) ### 4. 📜 ระบบ Audit Log รายงานเชิงลึก - ส่งรายงานการละเมิดกฎไปยังห้อง Audit Log ที่กำหนดไว้ พร้อมรายละเอียดครบถ้วน: - 👤 **ข้อมูลผู้ส่ง:** รูป Avatar, Mention, Username และ User ID - 💬 **ตำแหน่งที่เกิดเหตุ:** ห้องแชทพร้อมลิงก์ Channel Mention - 🎯 **ประเภทกฎที่ละเมิด:** (`CONTAINS`, `EXACT`, `REGEX`, `DISCORD_INVITE`, `ANTI_SPACING`) - ⚠️ **เหตุผล:** หมายเหตุที่แอดมินกำหนดไว้สำหรับคำนั้น - 🔍 **คำที่ตรวจพบ:** ไฮไลต์คำหรือแพตเทิร์นที่ทำให้ข้อความถูกบล็อก - 📝 **ข้อความต้นฉบับ:** บันทึกข้อความเดิมทั้งหมดเพื่อความโปร่งใสในการตรวจสอบของแอดมิน - บันทึกประวัติการลบข้อความทั่วไปโดยผู้ใช้หรือม็อด (Message Delete Event) ### 5. 🎛️ ระบบ UI อินเทอร์แอคทีฟ (Discord UI Components) - **Dynamic Autocomplete:** พิมพ์ค้นหาคำต้องห้ามในคำสั่ง `/bantext remove` ได้แบบเรียลไทม์ - **Paginated Embed Views:** เปิดดูรายการคำต้องห้ามผ่านปุ่มกด `⏮️` `◀️` `▶️` `⏭️` รองรับคำแบนจำนวนมากโดยไม่ชนลิมิต 2,000 ตัวอักษร - **Confirmation Dialog:** มีปุ่มกดยืนยัน (Confirm/Cancel) ก่อนล้างข้อมูล ป้องกันการกดคำสั่งผิดพลาด --- ## 📋 คู่มือคำสั่ง Slash Commands ฉบับสมบูรณ์ > 🔒 ทุกคำสั่งเป็น **Slash Commands (`/`)** และตอบกลับแบบ **Ephemeral** (มองเห็นเฉพาะผู้เรียกใช้คำสั่ง) เพื่อความปลอดภัยและความเป็นส่วนตัว ### 🚫 จัดการคำต้องห้าม (`/bantext`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | ตัวอย่างการใช้งาน | |---|---|---|---| | `/bantext add` | `word` *(จำเป็น)*<br>`match_type` *(ตัวเลือก: contains, exact, regex)*<br>`reason` *(ตัวเลือก)* | เพิ่มคำหรือข้อความต้องห้ามเข้าสู่ระบบ | `/bantext add word:fivem match_type:contains reason:ห้ามโปรโมทโปรแกรมช่วยเล่น` | | `/bantext remove` | `word` *(จำเป็น - มี Autocomplete)* | ลบคำออกจากระบบ | `/bantext remove word:#1 fivem` | | `/bantext list` | `search` *(ตัวเลือก)* | แสดงรายการคำต้องห้ามทั้งหมดพร้อมปุ่มเปิดหน้า | `/bantext list search:discord` | | `/bantext test` | `text` *(จำเป็น)* | ทดสอบข้อความว่าถูกระบบบล็อกหรือไม่ และติดกฎข้อใด | `/bantext test text:เข้าเซิร์ฟเราสิ discord.gg/test` | | `/bantext clear` | *(ไม่มี)* | ล้างรายการคำต้องห้ามทั้งหมด (มีปุ่มกดยืนยัน) | `/bantext clear` | ### 👮 จัดการสิทธิ์แอดมิน (`/admin`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/admin add` | `user` *(จำเป็น)* | เพิ่มผู้ใช้ให้มีสิทธิ์สั่งการและควบคุมบอทได้ | | `/admin remove` | `user` *(จำเป็น)* | ถอดสิทธิ์ผู้ดูแลบอท (ไม่สามารถถอดสิทธิ์เจ้าของบอทได้) | | `/admin list` | *(ไม่มี)* | แสดงรายชื่อผู้ดูแลระบบและเจ้าของบอททั้งหมด | ### ⚪ จัดการข้อยกเว้น (`/whitelist`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/whitelist role_add` | `role` *(จำเป็น)* | ยกเว้นยศไม่ให้ถูกบอทตรวจสอบหรือลบข้อความ | | `/whitelist role_remove` | `role` *(จำเป็น)* | นำยศออกจากรายการยกเว้น | | `/whitelist channel_add` | `channel` *(จำเป็น)* | ยกเว้นห้องไม่ให้ถูกบอทตรวจจับข้อความ (เช่น ห้องทีมงาน) | | `/whitelist channel_remove` | `channel` *(จำเป็น)* | นำห้องออกจากรายการยกเว้น | | `/whitelist list` | *(ไม่มี)* | แสดงรายชื่อยศและห้องทั้งหมดที่ได้รับการยกเว้น | ### ⚙️ ตั้งค่าระบบ (`/settings`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/settings view` | *(ไม่มี)* | แสดงแดชบอร์ดสรุปสถานะและการตั้งค่าปัจจุบันทั้งหมด | | `/settings setlogchannel` | `channel` *(จำเป็น)* | กำหนดห้องสำหรับส่งบันทึกการตรวจจับ (Audit Log Channel) | | `/settings toggle_invites` | `enable` *(จำเป็น: True/False)* | เปิดหรือปิดระบบบล็อกลิงก์เชิญ Discord อัตโนมัติ | | `/settings set_alert` | `mode` *(จำเป็น: temp_message, silent, dm)* | เลือกรูปแบบการแจ้งเตือนเมื่อตรวจพบข้อความผิดกฎ | ### 📖 ศูนย์ช่วยเหลือ (`/help`) - `/help` — แสดงคู่มือสรุปวิธีการใช้งานคำสั่งทั้งหมดในรูปแบบการ์ด Embed --- ## 🔬 แผนผังการทำงานของระบบ (Architecture Overview) ``` [ ข้อความถูกส่งเข้ามาในเซิร์ฟเวอร์ ] │ ▼ [ 1. ตรวจสอบสิทธิ์และข้อยกเว้น (Whitelist Check) ] เช็คเจ้าของบอท, แอดมิน, ผู้ดูแลเซิร์ฟเวอร์, ยศยกเว้น และห้องยกเว้น │ (หากไม่อยู่ในข้อยกเว้น) ▼ [ 2. ล้างอักขระล่องหน (Zero-Width Stripping) ] ลบ \u200b, \u200c, \u200d, \ufeff, \u2060, \u00ad ออกทั้งหมด │ ▼ [ 3. ถอดรหัสฟอนต์ตัวหนังสือ (Unicode Normalization) ] แปลงฟอนต์แฟนซีด้วย NFKD -> NFKC เช่น '𝗖𝗵𝗮𝘆𝗲𝗻' -> 'chayen' │ ▼ [ 4. ตรวจจับลิงก์เชิญและเว็บฟิชชิ่ง (Invite & Domain Regex) ] ดักจับ discord.gg/* และเว็บไซต์อันตราย │ ▼ [ 5. ตรวจสอบเงื่อนไขคำต้องห้าม (Blacklist Rules) ] ตรวจสอบ Exact Match, Regex Pattern และคำที่เว้นวรรคหลบเลี่ยง │ ├─► [ ผ่าน (Allow) ] ──► ข้อความส่งได้ตามปกติ │ └─► [ ละเมิดกฎ (Blocked) ] ──► 1. ลบข้อความทันที 2. ส่งการ์ดเตือนและลบอัตโนมัติใน 5 วินาที 3. ส่งรายงาน Audit Log ละเอียดเข้าห้องทีมงาน ``` ### การจัดเก็บข้อมูล (Data Persistence) - **JSON Storage Engine:** จัดเก็บข้อมูลแบบ Persistent JSON ไร้ภาระ Dependency แยกไฟล์ `settings.json` และ `blacklist.json` ชัดเจน - ข้อมูลคำต้องห้าม, แอดมิน, ข้อยกเว้นยศ/ห้อง จะยังคงอยู่ครบถ้วน ไม่สูญหายเมื่อรีสตาร์ทบอท --- ## 🚀 วิธีติดตั้งและเริ่มต้นใช้งาน (Installation Steps) ### ความต้องการของระบบ (Prerequisites) - Python 3.11 ขึ้นไป - Discord Bot Token พร้อมเปิดใช้งาน Gateway Intents ใน Developer Portal: - ✅ **Message Content Intent** - ✅ **Server Members Intent** ### 1. ติดตั้ง Dependencies ```bash pip install discord.py python-dotenv rich ``` ### 2. ตั้งค่าไฟล์ Environment (`.env`) สร้างไฟล์ `.env` ในโฟลเดอร์โปรเจกต์: ```env # 🔑 Discord Bot Token (ได้จาก Discord Developer Portal) DISCORD_TOKEN=YOUR_BOT_TOKEN_HERE # 👑 Discord User ID ของเจ้าของบอท (ยกเว้นการตรวจสอบทั้งหมด) OWNER_ID=1296983043998879804 # 📜 Channel ID ของห้องบันทึก Audit Log LOG_CHANNEL_ID=1320743992639619092 # 🔔 รูปแบบการแจ้งเตือน: temp_message | silent | dm ALERT_MODE=temp_message # ⏱️ ระยะเวลาแสดงการ์ดเตือนก่อนลบอัตโนมัติ (วินาที) ALERT_DELETE_SECONDS=5 ``` ### 3. รันบอท ```bash python main.py ``` > เมื่อบอทออนไลน์ หน้าจอ Terminal จะแสดงแบนเนอร์สรุปสถิติ โหลด Cogs และซิงค์ Slash Commands ไปยัง Discord ให้อัตโนมัติทันที --- ## 🛡️ สิทธิ์ที่บอทต้องการในเซิร์ฟเวอร์ (Required Permissions) - **Manage Messages** (ลบข้อความที่ละเมิดกฎ) - **Send Messages & Embed Links** (ส่งการ์ดแจ้งเตือนและ Audit Log) - **Read Message History** (ดักจับและอ่านข้อความเพื่อตรวจสอบ) - **Use Application Commands** (ลงทะเบียนและใช้งาน Slash Commands) --- ## 🧪 ชุดทดสอบความถูกต้องของระบบ (Automated Tests) ระบบมีชุดทดสอบครอบคลุมทุกฟังก์ชันใน `test_suite.py`: ```bash python test_suite.py # ผลการทดสอบ: 9/9 Tests ผ่านทั้งหมด 100% ```

K AegisSpam
# 🛡️ K AegisSpam - บอทป้องกันสแปม & ดูแลแชทอัจฉริยะแบบ Real-Time > **K AegisSpam** คือบอทระบบรักษาความปลอดภัยและป้องกันการสแปมข้อความสำหรับเซิร์ฟเวอร์ Discord ยุคใหม่ พัฒนาด้วย Python 3.11 และ discord.py 2.7+ (Discord API v10) มาพร้อมกลไกตรวจจับสแปมหลายมิติ (**Multi-Vector Spam Defense**) เช่น การฟลัดข้อความรัว (Flooding), ข้อความซ้ำ (Duplicate), การแท็กก่อกวน (Mass Mentions) และบล็อกลิงก์คำเชิญอัตโนมัติ โดยระงับสิทธิ์ทันทีผ่าน **Discord Native Timeout** มีตัวเลขนับถอยหลังบนหน้า Discord Client และระบบคำสั่งลบข้อความอัจฉริยะ `/clear` ครบวงจร --- ## 🌟 จุดเด่นและฟีเจอร์หลัก (Core Features) ### 1. 🛡️ กลไกตรวจจับสแปมหลายมิติ (Multi-Vector Spam Defense) - **Sliding Window Rate-Limiter (O(1)):** ตรวจจับการส่งข้อความถี่หรือรัวเกินเกณฑ์ (Flooding) ด้วยโครงสร้างข้อมูล Deque ประสิทธิภาพสูง ตัดการทำงานทันทีหากส่งเกินกำหนดในเวลาที่ตั้งไว้ - **Duplicate Message Hasher:** ตรวจจับและปรับสภาพข้อความ (Normalize) ดักจับผู้ใช้ที่ส่งข้อความเดิมซ้ำๆ เพื่อกวนแชทหรือโฆษณา - **Mass Mention Limiter:** ตรวจจับข้อความที่มีการแท็กสมาชิกหรือยศจำนวนมากผิดปกติ (User & Role Mentions) - **Discord Invite Blocker:** ดักจับ Regex URLs ของลิงก์คำเชิญ Discord ทุกรูปแบบ (`discord.gg/*`, `discord.com/invite/*`) ป้องกันการสแปมโปรโมตเซิร์ฟเวอร์ ### 2. ⚡ ระบบการลงโทษแบบ Discord Native Timeout (v10 API) - **Native Timeout อัตโนมัติ:** เมื่อตรวจพบสแปม บอทจะลงโทษด้วยการ Timeout ทันที สมาชิกจะไม่สามารถพิมพ์ข้อความ ส่งสติกเกอร์ รีแอคชั่น หรือพูดในห้องเสียงได้ - **มีตัวเลขนับถอยหลัง (Visual Countdown):** ฝั่ง Discord Client จะแสดงป้ายเวลานับถอยหลังชัดเจน - **Mute Role Fallback:** รองรับการสลับไปใช้ยศ `Muted` แบบดั้งเดิมได้ตามความต้องการของเซิร์ฟเวอร์ - **Rate-Limit Safe DM:** ส่งการ์ดแจ้งเตือนผ่าน DM ไปยังผู้กระทำผิดเพียงครั้งเดียว พร้อมระบบ Cooldown ป้องกันไม่ให้บอทถูก Discord แบน API ### 3. 🧹 เครื่องมือจัดการข้อความอัจฉริยะ (Advanced Purge & Moderation) - **Smart Filter `/clear messages`:** ลบข้อความ 1-100 ข้อความ พร้อมฟิลเตอร์คัดกรอง: - เลือกลบเฉพาะข้อความของผู้ใช้ที่ระบุ - เลือกลบเฉพาะข้อความจากบอท (Bots Only) - เลือกลบเฉพาะข้อความที่มีคำเฉพาะ (Contains Keyword) - **Channel Cleanup `/clear all`:** ล้างข้อความล่าสุดในห้องแชทอย่างปลอดภัย - **Manual Timeout `/timeout` & `/untimeout`:** สั่งระงับการใช้งานสมาชิกได้ด้วยตนเอง ระบุเวลาได้ยืดหยุ่น เช่น `60s`, `5m`, `2h`, `1d` ### 4. 📜 ระบบบันทึกประวัติความปลอดภัย (Audit Log System) - ส่งรายงานการตรวจจับและการลงโทษไปยังห้อง Log โดยอัตโนมัติ: - 👤 **ข้อมูลผู้กระทำผิด:** Avatar, Mention, Username และ User ID - 📍 **ห้องที่เกิดเหตุ:** ลิงก์ Channel Mention - ⚡ **มาตรการที่ใช้:** ระบุรูปแบบและระยะเวลาการลงโทษ - 🔍 **สาเหตุการตรวจพบ:** ประเภทของสแปมที่ตรวจเจอ - 💬 **ตัวอย่างข้อความ:** พรีวิวข้อความที่ถูกตรวจจับ ### 5. ⚙️ จัดการการตั้งค่าและข้อยกเว้น (Customization & Whitelist) - **Whitelist System:** ยกเว้น ยศ (Roles), ห้องแชท (Channels), และผู้ใช้ (Users) จากระบบตรวจจับ - **Per-Guild Persistent JSON:** บันทึกข้อมูลแยกรายเซิร์ฟเวอร์ด้วย Safe Atomic Write ข้อมูลไม่สูญหายแม้บอทรีสตาร์ท --- ## 📋 คู่มือคำสั่ง Slash Commands ฉบับสมบูรณ์ > 🔒 ทุกคำสั่งเป็น **Slash Commands (`/`)** และตอบกลับแบบ **Ephemeral** (มองเห็นเฉพาะผู้ใช้คำสั่ง) ### 🛡️ หมวดระบบป้องกันสแปม (`/antispam`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/antispam status` | *(ไม่มี)* | แสดงสถานะ เกณฑ์ตรวจจับ และห้อง Log ของเซิร์ฟเวอร์ | | `/antispam toggle` | *(ไม่มี)* | สลับเปิด/ปิดระบบ Anti-Spam ชั่วคราว | | `/antispam config` | `max_messages`<br>`time_window`<br>`duplicate_threshold`<br>`timeout_seconds`<br>`block_invites` | ปรับแต่งเกณฑ์ตรวจจับสแปมและเวลาลงโทษ | | `/antispam punishment` | `mode` *(timeout หรือ role)* | เลือกระบบการลงโทษ (Native Timeout หรือ Muted Role) | ### 📢 หมวดห้องบันทึกประวัติ (`/log`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/log set` | `channel` *(จำเป็น)* | กำหนดห้อง Text Channel สำหรับส่งแจ้งเตือนสแปม | | `/log disable` | *(ไม่มี)* | ปิดการส่ง Log ลงห้องแชท | ### ⚪ หมวดข้อยกเว้น (`/whitelist`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/whitelist add_role` | `role` *(จำเป็น)* | เพิ่มยศให้ได้รับการยกเว้นจากการตรวจจับ | | `/whitelist remove_role` | `role` *(จำเป็น)* | ลบยศออกจากรายการยกเว้น | | `/whitelist add_channel` | `channel` *(จำเป็น)* | เพิ่มห้องแชทให้ได้รับการยกเว้น | | `/whitelist remove_channel` | `channel` *(จำเป็น)* | ลบห้องแชทออกจากรายการยกเว้น | | `/whitelist list` | *(ไม่มี)* | แสดงรายการยศ ห้อง และผู้ใช้ที่ได้รับการยกเว้นทั้งหมด | ### 👑 หมวดผู้ดูแลระบบบอท (`/admin`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/admin add` | `member` *(จำเป็น)* | เพิ่มผู้ใช้ให้มีสิทธิ์ตั้งค่าและควบคุมบอทได้ | | `/admin remove` | `member` *(จำเป็น)* | ถอดสิทธิ์ผู้ดูแลบอท | | `/admin list` | *(ไม่มี)* | แสดงรายชื่อผู้ดูแลระบบบอททั้งหมด | ### 🧹 หมวดจัดการข้อความ & สมาชิก (`/clear`, `/timeout`) | คำสั่ง | พารามิเตอร์ | คำอธิบาย | |---|---|---| | `/clear messages` | `amount` *(1-100)*<br>`user` *(ไม่บังคับ)*<br>`bots_only` *(ไม่บังคับ)*<br>`contains` *(ไม่บังคับ)* | ลบข้อความในห้องแชทตามเงื่อนไขที่กำหนด | | `/clear user` | `member` *(จำเป็น)* | ค้นหาและลบข้อความเฉพาะของผู้ใช้ที่ระบุ | | `/clear all` | *(ไม่มี)* | ล้างข้อความล่าสุดทั้งหมดในห้องแชท | | `/timeout` | `member` *(จำเป็น)*<br>`duration` *(เช่น 60s, 5m, 1h)*<br>`reason` *(ไม่บังคับ)* | สั่ง Timeout สมาชิกด้วยตนเอง | | `/untimeout` | `member` *(จำเป็น)*<br>`reason` *(ไม่บังคับ)* | ปลดการ Timeout สมาชิก | ### ℹ️ หมวดทั่วไป (`/help`, `/ping`, `/stats`) | คำสั่ง | คำอธิบาย | |---|---| | `/help` | แสดงคู่มือสรุปคำสั่งและวิธีการใช้งานทั้งหมด | | `/ping` | ตรวจสอบ WebSocket Latency และเวลาตอบสนองของบอท | | `/stats` | ดูสถิติจำนวนสแปมที่สกัดกั้นได้ และเวลาเปิดทำงานต่อเนื่อง | --- ## 🔬 แผนผังการทำงานของระบบ (Architecture Overview) ``` [ ข้อความถูกส่งเข้ามาในเซิร์ฟเวอร์ ] │ ▼ [ 1. Whitelist & Permission Check ] ข้ามหากเป็นบอท, แอดมินเซิร์ฟเวอร์, ยศ/ห้อง/ผู้ใช้ที่อยู่ใน Whitelist │ (หากไม่ใช่ข้อยกเว้น) ▼ [ 2. Multi-Vector Spam Detection ] ├── ตรวจสอบลิงก์คำเชิญ Discord (Invite Regex) ├── ตรวจสอบการแท็กถี่ (Mass Mentions) ├── ตรวจสอบข้อความรัว (Sliding Window Rate Limit) └── ตรวจสอบข้อความซ้ำ (Duplicate Hasher) │ (หากพบสแปม) ▼ [ 3. Automated Enforcement Action ] ├── ลบข้อความสแปมทิ้งทันที (Delete Offending Message) ├── สั่งลงโทษ (Discord Native Timeout หรือ Muted Role) ├── ส่ง DM ตักเตือนผู้ใช้ (พร้อมระบบ Cooldown ป้องกัน Rate Limit) └── ส่งรายงาน Audit Log ไปยังห้องที่กำหนด ``` --- ## ⚙️ สิทธิ์ของบอทที่จำเป็น (Required Bot Permissions) เพื่อให้บอททำงานได้อย่างเต็มประสิทธิภาพ ควรให้สิทธิ์ดังนี้แก่ Role ของบอท: - **Moderate Members** *(จำเป็นอย่างยิ่งสำหรับคำสั่ง Timeout สมาชิก)* - **Manage Messages** *(จำเป็นสำหรับการลบข้อความสแปมและคำสั่ง /clear)* - **Manage Roles** *(กรณีต้องการใช้ระบบ Muted Role สำรอง)* - **Read Messages / View Channels** - **Send Messages & Embed Links** - **Read Message History** > ⚠️ **ข้อควรระวังเรื่องลำดับยศ (Role Hierarchy):** > ยศของบอทจะต้องอยู่**สูงกว่า**ยศของสมาชิกทั่วไป เพื่อให้สามารถ Timeout หรือจัดการยศของสมาชิกคนนั้นได้