Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法为discord.js中的消息中提到的人添加角色?_Javascript_Discord.js - Fatal编程技术网

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

一样发送消息,但该成员没有获得任何角色。请阅读我所说的内容。