Discord.js 无法从公会中找到角色

Posted

技术标签:

【中文标题】Discord.js 无法从公会中找到角色【英文标题】:Discord.js cannot find role from guild 【发布时间】:2021-04-20 20:28:00 【问题描述】:

我正在使用 discord.js 制作一个 Discord 机器人,但是,它不允许我获得公会的角色并找到特定的角色。这有点令人困惑,所以这里是代码:

//Note: this is inside a messageReactionAdd event
let guild = reaction.message.guild;
console.log(guild.id);
console.log(guild.roles);
let role = guild.roles.cache.find(r => r.name == "Member");
reaction.member.roles.add(role);

控制台会显示公会 ID 以及角色和信息的长图,但它在定义 role 的行中显示 roles is not a property of undefined。我不知道它为什么这样做。

【问题讨论】:

此命令是否正在 DM 中进行测试?如果消息对象位于 DM 中,则消息对象将没有 guild 属性。 它在服务器中。我还指出,它确实在控制台中记录了公会 ID 和角色列表。 【参考方案1】:

你的问题不在于角色本身,你的问题在于reaction.member。反应没有成员属性。

只要改变这个->

reaction.member.roles.add(role);

收件人(messageReactionAdd 有用户参数)->

guild.members.cache.get(user.id).roles.add(role)

【讨论】:

以上是关于Discord.js 无法从公会中找到角色的主要内容,如果未能解决你的问题,请参考以下文章

如何在“就绪”时找到所有具有特定角色的成员?不和谐.js

无法读取未定义 discord.js 的属性“公会”

Discord.js 创建一个角色并在之后立即获取它的 id

如何添加 ID 保存在 JSON 文件 discord.js v12 中的角色?

Discord.js guildCreate/guildDelete 事件无法获取新公会的所有者标签

创建角色时角色覆盖 discord.js