我遇到错误“ TypeError:无法读取未定义的属性” leave”

时间:2019-08-02 15:48:00

标签: node.js discord.js

我有问题。我已经为不和谐的bot安装了ytdl-core,但是,当bot必须自动离开人声室时,出现此错误:

console.log(queue);
        (function play(song) {
            console.log(song);
            if (song === undefined) return msg.channel.send('La file d\'attente est vide').then(() => {
                queue[msg.guild.id].playing = false;
                msg.member.voiceChannel.leave();

错误:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'leave' of undefined

老实说,我认为这不是定义问题。

1 个答案:

答案 0 :(得分:2)

msg.member.voiceChannel未定义。这意味着用户不在语音通道中。在尝试使用它之前,请确保属性(voiceChannel)存在。

const voiceChannel = msg.member.voiceChannel;

if (voiceChannel) {
  voiceChannel.leave()
    .catch(console.error);
}