最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Discord.js:无法读取未定义的属性'type'

网站源码admin21浏览0评论

Discord.js:无法读取未定义的属性'type'

Discord.js:无法读取未定义的属性'type'

所以,我试图制造一个机器人,在这种情况下,是通道创建/删除命令,没有任何关于JS的知识(对此我很讨厌),但进展不顺利

这里是代码:

}else if (args[0] === "delete") {
      console.log('deleting')
      let ch = message.content.split(`${bot.prefix}vchannel ${args[0]}`).join('')
      let fetchedChannel = message.guild.channels.cache.find(r=>r.name === ch)
      if (fetchedChannel.type === "voice") {
        fetchedChannel.delete()
      message.channel.send(`Голосовой канал ${ch} удален`).then(msg=>msg.delete({timeout:5000}))
      console.log('delete complete')
      }
    }
    }

并且有错误:

(node:5216) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'type' of undefined

我试图删除ch

}else if (args[0] === "delete") {
      console.log('deleting')
      let fetchedChannel = message.guild.channels.cache.find(r=>r.name === args[1].join(''))
      if (fetchedChannel.type === "voice") {
        fetchedChannel.delete()
      message.channel.send(`Голосовой канал ${args[1].join('')} удален`).then(msg=>msg.delete({timeout:5000}))
      console.log('delete complete')
      }
    }
    }

但出现其他错误:

TypeError: args[1].join is not a function

尝试过自己找到解决方案,但我失败了

[请帮助,我要疯了。

如果需要更多代码,我可以发送。

而且,我的英语不好,我会犯错,请原谅我

回答如下:

[在您的第一个代码中,该错误表示channel中没有message.guild.channels.cache具有name === ch,因此fetchedChannelundefined。这是未找到的稳定结果。

在第二个代码中,如果args[1]是字符串,则试图在不能使用的字符串上使用数组方法join

如果有调试器,请使用它来跟踪变量的更改和值。如果您没有,请使用console.log输出中间值。

清单:

  • message.content是否为包含${bot.prefix}vchannel ${args[0]}的字符串?该行代码只是删除了所有出现的${bot.prefix}vchannel ${args[0]},因为您拆分并加入了""

  • args[1]是否是您需要的字符串?

发布评论

评论列表(0)

  1. 暂无评论