Javascript 有没有办法为discord.js中的消息中提到的人添加角色?
这是我的当前代码Javascript 有没有办法为discord.js中的消息中提到的人添加角色?,javascript,discord.js,Javascript,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
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
返回第一个提到的用户的用户对象。您不能向用户添加角色,而只能向GuildMember
添加角色-这可以使用message.notices.members.first()
完成
最终代码
const person=message.notices.members.first()
if(person==null){
message.channel.send('请提及某人')
返回
}
const role=message.guild.roles.cache.some(role=>role.name==“静音”)
person.roles.add(角色)
message.channel.send(`${person.user.username}已被禁用`)
person.send('您在DoGame中已被禁用')
在GuildMember
和User
之间存在差异
:
- 代表不和谐工会的成员
- 属性:
,guild
,joinedAt
。。这是特定于公会的user
- 您可以通过
.User
- 表示不一致的用户
- 属性:
,id
,username
。。。不是特定于公会的createdAt
User
,并尝试将角色添加到User
而不是GuildMember
const person=message.indications.members.first();
此^^^将为您提供GuildMember
,如果您想访问User-person.User
例如:用户名
你可以像
person.user.username
一样发送消息,但该成员没有获得任何角色。请阅读我所说的内容。