首页 > 解决方案 > 有没有办法为在 discord.js 中的消息中提到的人添加角色?

问题描述

这是我当前的代码

let person = message.mentions.users.first()
if (person === null) {
 message.channel.send('Please mention someone')
 return
}
let role = message.guild.roles.cache.some(role => role.name === "Muted")
person.roles.add(role)
message.channel.send(`${person.username} has been muted`)
person.send('You has been muted in DoGame')

由于某种原因它不起作用。

标签: javascriptdiscord.js

解决方案


person返回第一个提到的用户的用户对象。您不能将角色添加到用户,而只能添加到GuildMember- 这可以使用message.mentions.members.first().

最终代码

const person = message.mentions.members.first()
if (person === null) {
 message.channel.send('Please mention someone')
 return
}
const role = message.guild.roles.cache.some(role => role.name === "Muted")
person.roles.add(role)
message.channel.send(`${person.user.username} has been muted`)
person.send('You has been muted in DoGame')

推荐阅读