跳轉到

大量標記偵測

指令:/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/身分組/成員)可以各自開關,但不能全部關掉——全關等於這個功能不會有任何作用。

偵測到時會發生什麼事

  1. 依設定刪除該則訊息
  2. 對發送者執行設定的處理動作(禁言/踢出/封鎖)
  3. 私訊通知群組擁有者,附上命中原因、使用者、執行結果
  4. 寫一筆進執行紀錄,可以在平台後台查詢

命中之後這則訊息就不會再進洗版偵測的計數,避免同一件事被處理兩次。