首頁 >web前端 >js教程 >為什麼我的 Discord 機器人事件失敗並且我的快取為空?

為什麼我的 Discord 機器人事件失敗並且我的快取為空?

Linda Hamilton
Linda Hamilton原創
2024-12-24 09:49:12449瀏覽

Why Are My Discord Bot Events Failing and My Cache Empty?

Discord 網關意圖:解決事件發送失敗和快取問題

最近,一些Discord 用戶遇到了事件發送和快取方面的困難管理。具體來說,guildMemberAdd、guildMemberRemove 和 guildMemberUpdate 等事件已停止觸發,導致功能無回應。此外,據觀察,用戶快取是空的或極其有限。此外,旨在獲取公會成員的函數一直遇到超時。

這些問題可以歸因於 Discord 最近執行的「特權意圖」。意圖是允許您在 Discord 上訂閱特定資料流的機制。其中兩個意圖,GUILD_MEMBERS 和 GUILD_PRESENCES,由於其敏感性而被視為特權,並且自 2020 年 10 月 27 日起默認被禁用。

特權意圖的影響

停用特權意圖可能會導致各種問題:

  • 啟動時成員和使用者快取為空或顯著耗盡
  • Guild.memberCount傳回過時的值
  • 無法觸發與狀態相關的事件
  • 狀態資料回傳null 或未定義
  • 公會成員出現離線
  • 如果啟用fetchAllMembers,登入期間會發生逾時
  • GuildMemberManager.fetch() 和UserManager.fetch() 方法逾時
  • 涉及公會成員的事件失敗,例如guildMemberAdd、guildMemberRemove、guildMemberUpdate、guildMemberSpeaking 和guildMembersChunk

>

要解決此問題,您必須透過Discord 開發者入口網站手動啟用特權意圖:

    導覽至 Discord 開發者入口網站。
  1. 選擇您的應用程式。
  2. 到側邊欄中的「機器人」標籤。
  3. 向下捲動至「特權網關意圖」部分。
  4. 選取 GUILD_MEMBERS 和/或 GUILD_PRESENCES 複選框。
  5. 如果您bot 擁有超過 75 個公會,Discord 需要先對其進行驗證。按照指示請求白名單訪問。
啟用後,您將需要在 Discord.js 模組配置中指定所需的意圖。如果您不需要所有意圖,可以選擇性地啟用特定意圖。

資源

    Discord.js 官方指南- 網關意圖
  • Discord 開發者文件- 網關意圖
  • 網關更新常見問題
  • Discord API Github - 問題1363 - 特權意圖
  • Discord 部落格 - Discord 上機器人的未來

以上是為什麼我的 Discord 機器人事件失敗並且我的快取為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn