我的discord.js guildmember 事件都沒有發出,我的使用者快取基本上是空的,並且我的函數超時
您是否遇到以下任何問題:
- 您的guildMemberAdd、guildMemberRemove和guildMemberUpdate 事件突然停止工作
- 您的GuildMemberManager 的快取為空或接近空
- 您的GuildMemberManager.fetch() 和UserManager.fetch() 方法逾時
-
-
您的公會成員似乎離線-
如果您遇到任何這些問題,不幸的是,您對此無能為力。最近,
Discord 強制執行了特權意圖
,這可能會導致上述問題。
什麼是特權意圖?
- 特權意圖是需要手動啟用的敏感資料。 自 2020 年 10 月 27 日起,這些意圖預設為關閉。
- 特權意圖包括:
- GUILD_PRESENCES:此意圖允許您的機器人存取狀態資料。
- GUILD_MEMBERS:此意圖允許您的機器人存取成員資料。
-
如何啟用特權意圖
- 前往 Discord開發者入口網站:[https://discord.com/developers/applications](https://discord.com/developers/applications)
選擇您的應用程式
點選「機器人」標籤
向下捲動至「特權網關意圖」部分
const client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILD_MEMBERS,
Discord.Intents.FLAGS.GUILD_PRESENCES
]
});
登入後複製
啟用「伺服器成員」和/或“伺服器存在”意圖
const client = new Discord.Client({
ws: {
intents: [
Discord.Intents.FLAGS.GUILD_MEMBERS,
Discord.Intents.FLAGS.GUILD_PRESENCES
]
}
});
登入後複製
按一下“儲存變更” 如果您的機器人未經驗證,您將需要向 Discord 提交支援票證才能請求存取特權意圖。
Discord.js 實作
在 Discord 中啟用特權意圖後開發者門戶,您需要在 Discord.js 機器人中啟用它們。 為此,請新增以下程式碼到您的機器人的建構子:這將為您的機器人啟用 GUILD_MEMBERS 和 GUILD_PRESENCES 意圖。 您也可以使用 ws 選項啟用特權意圖:如果您在啟用特權意圖後仍然遇到問題,請參考以下內容資源:
- [Discord 開發者入口網站 - 閘道意圖](https://discord.com/developers/docs/topics/gateway#gateway-intents)
- [Discord.js 官方指南 -網關意圖](https://discordjs.guide/gateway/intents.html)
- [網關更新常見問題解答](https://discord.com/developers/docs/topics/gateway#gateway- intents)
- [Discord API Github - 問題1363 - 特權意圖](https://github.com/discord /discord-api-docs/issues/1363)
- [Discord 部落格- 機器人的未來不和諧](https://blog.discord.com/the-future-of-bots-on-discord- 3d25af28f58e)
以上是為什麼我的 Discord.js 公會成員活動沒有觸發,如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!