【问题标题】:How to add a role from mention discord.js如何从提及 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()

标签: javascript discord.js


【解决方案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 相关。
猜你喜欢
  • 2020-03-04
  • 2021-05-03
  • 2021-04-21
  • 2021-04-10
  • 2021-01-28
  • 2020-12-26
  • 1970-01-01
  • 2020-11-30
  • 2023-03-15
相关资源
最近更新 更多