首页 > web前端 > js教程 > 为什么我的 Discord.js 公会成员活动没有触发,如何解决?

为什么我的 Discord.js 公会成员活动没有触发,如何解决?

Susan Sarandon
发布: 2024-12-29 15:55:16
原创
762 人浏览过

Why Aren't My Discord.js Guild Member Events Firing, and How Can I Fix It?

我的discord.js guildmember 事件都没有发出,我的用户缓存基本上是空的,并且我的函数超时

您是否遇到过以下任何问题:

  • 您的guildMemberAdd、guildMemberRemove 和 guildMemberUpdate 事件突然停止工作
  • 您的 GuildMemberManager 的缓存为空或接近空
  • 您的 GuildMemberManager.fetch() 和 UserManager.fetch() 方法超时
  • 如果您指定 fetchAllMembers,您的 client.login() 会超时选项
  • 您的公会成员似乎离线

如果您遇到任何这些问题,不幸的是,您对此无能为力。最近,Discord 强制执行了特权意图,这可能会导致上述问题。

什么是特权意图?

特权意图是需要手动启用的敏感数据。 自 2020 年 10 月 27 日起,这些意图默认关闭

特权意图包括:

  • GUILD_PRESENCES:此意图允许您的机器人访问状态数据。
  • GUILD_MEMBERS:此意图允许您的机器人访问成员数据。

如何启用特权意图

  1. 前往 Discord 开发者门户:[https://discord.com/developers/applications](https://discord.com/developers/applications)
  2. 选择您的应用程序
  3. 点击“机器人”选项卡
  4. 向下滚动到“特权网关意图”部分
  5. 启用“服务器成员”和/或“服务器存在”意图
  6. 单击“保存更改”

如果您的机器人未经验证,您将需要向 Discord 提交支持票证才能请求访问特权意图。

Discord.js 实现

在 Discord 中启用特权意图后开发者门户,您需要在 Discord.js 机器人中启用它们。

为此,请添加以下代码到您的机器人的构造函数:

const client = new Discord.Client({
  intents: [
    Discord.Intents.FLAGS.GUILD_MEMBERS,
    Discord.Intents.FLAGS.GUILD_PRESENCES
  ]
});
登录后复制

这将为您的机器人启用 GUILD_MEMBERS 和 GUILD_PRESENCES 意图。

您还可以使用 ws 选项启用特权意图:

const client = new Discord.Client({
  ws: {
    intents: [
      Discord.Intents.FLAGS.GUILD_MEMBERS,
      Discord.Intents.FLAGS.GUILD_PRESENCES
    ]
  }
});
登录后复制

如果您在启用特权意图后仍然遇到问题,请参考以下内容资源:

  • [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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板