这是我当前的代码
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')
由于某些原因,它不能工作。
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')
GuildMember
与User
之间存在差异。
成员:
- 表示不和的公会成员
- 属性:
guild
,joinedAt
,user
.. - 您可以通过
<GuildMember>.user
从GuildMember访问User用户:
- 表示不和谐用户
- 属性:
id
,username
,createdAt
…
你得到User
从提到并试图添加角色到User
而不是GuildMember
。
const person = message.mentions.members.first();
这个^^^会给你GuildMember
,如果你想访问用户-person.user
示例:用于用户名你可以像person.user.username
一样。