您如何为 discord.js 中的用户分配任何角色?

How do you assign any role to a user in discord.js?

我不想要一个命令,无论何时执行 -role,它已经只有一个可以提供给用户。我希望无论您将角色作为第二个参数,它都会为该用户提供该角色(当然除非该角色不存在)。因此,如果您执行 -role @user Blue,它会赋予他们 'Blue' 角色,如果您执行 -role @user Red,则会赋予他们 'Red' 角色。

我想与此最相似的是 Dyno 机器人,无论您将什么角色作为第二个参数,它都会将该角色赋予用户。

尝试以下操作:

我假设您使用 discordjs guide 中的命令处理程序,因此 args 数组是命令本身之后的单词(参数)数组。

//search the role based on the name that the user provided:
let role = message.guild.roles.cache.find(role => role.name === args[1]);
//if the role doesn't exist, create it
if (!role) {
  role = await message.guild.roles.create({ data: { name: args[1] } });
}
//get the mentioned user
const member = message.mentions.members.first();
//add the role to the user
member.roles.add(role);