这是我当前的代码
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')
由于某种原因它不起作用。
答案 0 :(得分:1)
person
返回第一个提到的用户的 User 对象。您不能向用户添加角色,而只能向 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')
答案 1 :(得分:0)
GuildMember
和 User
之间有区别。
guild
、joinedAt
、user
.. 特定于公会。<GuildMember>.user
User :
id
、username
、createdAt
...不是公会特定的。并且您从提及中获得 User
并尝试将角色添加到 User
而不是 GuildMember
。
const person = message.mentions.members.first();
这^^^会给你GuildMember
,如果你想访问用户 - person.user
示例:用户名
你可以像person.user.username
一样。