公告頻道自動發佈¶
指令:
/publish
權限需求:管理伺服器 Manage Server
公告頻道(Announcement Channel)的訊息要按「發佈」,追蹤這個頻道的其他伺服器才會收到。開了這個功能之後,機器人會幫你按。
預設所有公告頻道都會自動發佈,包含其他機器人或 Webhook 發的開台通知、公告;不想發佈的頻道再另外排除。
總開關¶
用 /settings enable|disable announce_publish 控制(見群組功能開關),預設為啟用。
指令¶
/publish exclude add <channel>:這個公告頻道不要自動發佈,還在排隊的訊息也會一起取消/publish exclude remove <channel>:恢復自動發佈(只影響之後的新訊息,不會補發)/publish exclude list:列出不自動發佈的公告頻道/publish status:每個公告頻道的狀態(會發佈、不發佈、缺少權限)、近 7 天的發佈數量與排隊中的訊息
平台後台「Discord 機器人設定 → 模組設定 → 公告頻道自動發佈」也可以設定排除的頻道。
Discord 的發佈限速¶
Discord 對「發佈」的限速很嚴格,每個頻道每小時大約只能發佈 10 則,撞到之後可能要等快一個小時。
機器人的處理方式:
- 撞到限速時不會卡住,這則訊息排進佇列,等 Discord 告訴我們的時間到了再試
- 同一個頻道其他排隊中的訊息也一起往後延,不會每則都再撞一次
- 同一則訊息連續 4 次發佈失敗,就取消這筆,並寫進平台後台「執行紀錄 → 功能紀錄」
- 佇列存在資料庫裡,機器人中途重啟也不會漏發
訊息在排隊期間被刪掉、頻道被刪掉,或有人先手動按了發佈,機器人會直接跳過,不算失敗。
需要的權限¶
機器人在公告頻道需要「檢視頻道」「發送訊息」「管理訊息」。發佈別人(包含其他機器人)的訊息一定要有「管理訊息」,/publish status 會標出哪些頻道缺權限。