【问题标题】:"TypeError: Cannot read property 'id' of undefined" Discord.js error“TypeError:无法读取未定义的属性 'id'” Discord.js 错误
【发布时间】: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


【解决方案1】:

您似乎没有满足此条件,role => role.name == "Member" 这就是为什么mainroleundefined

你可以做的避免错误是:

if(mainrole && mainrole.id) {
       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));
} 

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 2020-04-08
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2020-07-14
    • 2019-07-11
    相关资源
    最近更新 更多