大量標記偵測¶
指令:
/mentionguard
權限需求:管理伺服器 Manage Server
抓「沒有管理伺服器權限的人」觸發 @everyone/@here,或是一則訊息標記大量身分組、大量成員。
這通常是帳號被盜用、或外部人士混進來洗版時的第一波動作,時間點往往早於洗版偵測會抓到的高頻訊息,所以獨立成一個偵測條件,不併進洗版的則數門檻裡。
為什麼是看「管理伺服器」而不是「提及所有人」權限
Discord 內建的「提及所有人」權限常常被放給一般身分組,甚至 @everyone 身分組預設就有,等於伺服器裡任何人都能 ping 全體成員。
真正要發全體公告的本來就是管理層,所以這裡用比較嚴格的「管理伺服器」當判斷依據。伺服器擁有者一律不受影響。
沒有權限的人打 @everyone 不會被處分
只有真的觸發通知才算命中。沒有「提及所有人」權限的人在訊息裡打出 @everyone,那只是一段純文字、不會通知任何人,機器人不會對這種情況做任何處理。
總開關¶
功能本身要不要執行,是用 /settings enable|disable mention_guard 控制(見群組功能開關),預設為未啟用。
/mentionguard config 負責的是「抓什麼、抓到之後怎麼處理」,兩者分開調整。
指令¶
/mentionguard config [detect_everyone] [role_threshold] [user_threshold] [delete_message] [action] [timeout_minutes] [notify_owner]:調整設定,所有選項為選填/mentionguard status:查看目前設定
提供設定選項¶
| 選項 | 說明 | 預設 |
|---|---|---|
detect_everyone |
要不要偵測 @everyone/@here | 開啟 |
role_threshold |
一則訊息標記幾個以上身分組算大量標記,填 0 代表不偵測這項 |
3 個 |
user_threshold |
一則訊息標記幾位以上成員算大量標記,填 0 代表不偵測這項 |
10 位 |
delete_message |
要不要刪除那則訊息 | 開啟 |
action |
處理動作:不處理、禁言、踢出、封鎖(四選一) | 禁言 |
timeout_minutes |
禁言分鐘數,action 設成禁言時使用 |
10 分鐘 |
notify_owner |
偵測到時要不要私訊通知群組擁有者 | 開啟 |
三種偵測條件(@everyone/身分組/成員)可以各自開關,但不能全部關掉——全關等於這個功能不會有任何作用。
偵測到時會發生什麼事¶
- 依設定刪除該則訊息
- 對發送者執行設定的處理動作(禁言/踢出/封鎖)
- 私訊通知群組擁有者,附上命中原因、使用者、執行結果
- 寫一筆進執行紀錄,可以在平台後台查詢
命中之後這則訊息就不會再進洗版偵測的計數,避免同一件事被處理兩次。