我必须注册一个帐户才能发布此信息,但我正在注册 !addrole
命令到我的机器人,我在弄清楚如何将 Angular 色添加到成员时遇到了一些麻烦,它一直给我这个错误TypeError: Cannot read property ‘roles’ of undefined
这是我一直在做的事情:
if (!message.content.startswith(prefix) || message.author.client) return;
const arguments = message.content.slice(prefix.length).split(‘‘);
const command = arguments.shift().toLowerCase();
if (command === ‘addrole’) {
const role = message.guild.roles.cache.find(role => role.name === ‘ROLE’)
const userId = arguments[0].slice(2, 19) // users id from the message
const user = message.guild.members.cache.get(userId) // user itself
user.roles.add(role)
}
但它一直给我上面的错误,请帮忙。另外,请原谅我的大写和索引,我只是将代码从我的电脑复制到我的手机,我的浏览器有点小故障。
你也可以在 Ralphiboy22#7118 上发邮件
最佳答案
有一个更好的方法来做到这一点,而不是做 userId 和 user 等,你可以使用 message.mentions.members.first()
像这样:
const role = message.guild.roles.cache.find(role => role.name === ‘Insert role here’)
const target = message.mentions.members.first();
target.roles.cache.add(role)
您还可以在目标行的底部添加:if(!target) message.channel.send(‘User not found!’)
关于javascript - 您如何赋予特定成员角色? Discord.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435818/