如何从提及 discord.js 添加角色
Posted
技术标签:
【中文标题】如何从提及 discord.js 添加角色【英文标题】:How to add a role from mention discord.js 【发布时间】:2021-08-02 00:43:50 【问题描述】:好的,所以我在 discord.js 中制作了一个机器人,我想要一种添加角色的方法。现在我有这个
let role = message.member.guild.roles.cache.find(role => role.name === "MyRole");
message.guild.members.cache.get(message.author.id).roles.add(role);
但我想知道是否有一种方法可以使用@提及来获得角色。所以我可以为所有角色使用一个 cmd,而不是为我希望机器人添加的每个角色使用一个 cmd
【问题讨论】:
你有什么尝试让它与提及一起工作? 类似:let role = message.roles.first() 【参考方案1】:有两种获得角色的方法。一种方法是您上面列出的,通过角色名称。另一种方法是通过ID,这是我使用的。
我将首先获取消息中提到的角色的 ID,然后从中获取 role
并继续将其添加到 message.author
代码:
//checks if the user has mentioned any roles
if (message.mentions.roles.size === 0) return message.channel.send("You didn't mention any roles.");
let roleID = message.mentions.roles.first().id;
let role = message.member.guild.roles.cache.get(roleID);
message.guild.members.cache.get(message.author.id).roles.add(role);
【讨论】:
我不断收到TypeError: Cannot read properties of undefined (reading 'id')
,我该如何解决这个问题?
如果您使用的是 discord.js v13,那么它可能已经改变。此代码仅与 discord.js v12 相关。以上是关于如何从提及 discord.js 添加角色的主要内容,如果未能解决你的问题,请参考以下文章
如何提及使用 Chat Discord.JS 发送消息的用户?