[英]TypeError: Cannot read the property 'add' of undefined
我一直在尝试让我的不和谐机器人为我服务器上的成员添加角色,但是每当我运行我的命令时,它都不起作用并且总是说:
类型错误:无法读取未定义的属性“添加”
我什至尝试用.add()
替换.addRole()
,但没有任何效果。
这是我的代码:
command(client, 'add', (message) => {
const target = message.mentions.members.first
const role = message.mentions.roles.first
const embed = new Discord.MessageEmbed()
.setColor('RANDOM')
.setDescription(`Added the role ${role}`)
.then(target.roles.addRole(role));
})
console.log('Commands are set')
有几个错误:
mentions.members
和mentions.roles
返回具有 [ first()][1]
方法的集合(不是属性,因此您需要添加括号).setDescription()
不返回承诺,而是返回MessageEmbed
.then()
您应该传递一个函数,而是调用.addRole()
并传递一个值addRole()
现在只是add()
看看下面的代码:
command(client, 'add', async (message) => {
// first is a method not a property
const target = message.mentions.members.first();
const role = message.mentions.roles.first();
// if something is missing, send an error message
if (!role) return message.channel.send('You need to mention a role');
if (!target) return message.channel.send('You need to mention a member');
try {
// add the role
await target.roles.add(role);
const embed = new Discord.MessageEmbed()
.setColor('RANDOM')
.setDescription(`Added the role ${role}`);
message.channel.send(embed);
} catch (err) {
console.err(err);
message.channel.send('Oops, there was an error. Maybe try again?!');
}
});
.then(target.roles.addRole(role));
应该是
.then(() => target.roles.addRole(role));
除此之外,您需要弄清楚为什么target.roles
未定义。 您可以从记录target
开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.