【发布时间】:2020-10-01 08:06:24
【问题描述】:
我正在使用 Discord.js 编写一个 Discord 机器人。我有下面的代码,但是当我运行命令时出现错误:"person.roles.remove(mainrole.id); TypeError: Cannot read property 'id' of undefined"
我不知道具体如何定义或定义什么。任何帮助将不胜感激,在此先感谢。
bot.on('message', msg => {
let args = msg.content.substring(PREFIX.length).split(" ");
switch (args[0]) {
case 'mute':
let person = msg.guild.member(msg.mentions.users.first() || msg.guild.member.cache.find(args[1]))
if (!person) {
return msg.reply("Couldn't find that user");
}
let mainrole = msg.guild.roles.cache.find(role => role.name == "Member");
let muterole = msg.guild.roles.cache.find(role => role.name === "muted");
if (!muterole) {
return msg.reply("Couldn't find mute role");
}
let time = args[2];
if (!time){
return msg.reply("Please specify a time")
}
person.roles.remove(mainrole.id);
person.roles.add(muterole.id);
msg.channel.send(`@${person.user.tag} has been muted for @${ms(ms(time))}`);
setTimeout(function (){
person.roles.add(mainrole.id);
person.roles.remove(muterole.id);
msg.channel.send(`@${person.user.tag} has been unmuted`)
}, ms(time));
break;
}
})
【问题讨论】:
-
似乎您没有满足此条件,
role => role.name == "Member"这就是为什么mainrole未定义。
标签: javascript discord.js