音乐Bot discord.js问题

时间:2020-06-04 00:20:24

标签: javascript node.js discord discord.js

我一直在尝试让音乐机器人正常运行此代码,我具有所有的依赖性,但我认为这是因为我观看的视频来自大约8个月前,并且很多代码已失效。

当前我遇到错误TypeError:无法读取未定义的属性“ join”。 如果有人可以帮助我解决问题并将其付诸实践,那就太好了。

bot.on('message', message => {

    if (!message.content.startsWith(PREFIX)) return;
    let args = message.content.slice(PREFIX.length).split(" ");


    switch(args[0]){
        case 'play':

                function play(connection, message){
                    var server = servers[message.guild.id];

                    server.dispatcher = connection.play(ytdl(server.queue[0], {filter: "audioonly"}));

                    server.queue.shift();

                    server.dispatcher.on("end", function(){
                        if(server.queue[0]){
                            play(connection, message);
                        }else {
                            connection.disconnect();
                        }
                    })
                }

                if(!args[1]){
                    message.channel.send("you need to provide a link!");
                    return;
                }

                if(!message.member.voice.channel.join){
                    message.channel.send("You must be in a voice channel to play music!");
                    return;
                }

                if(!servers[message.guild.id]) servers[message.guild.id] = {
                    queue: []
                }

                var server = servers[message.guild.id];

                server.queue.push(args[1]);

                if(!message.guild.voiceConnection)message.member.voiceChannel.join().then(function(connection){

                    play(connection, message);

                })

            break;

    }        

})

2 个答案:

答案 0 :(得分:1)

从Discord v12开始,message.member.voiceChannel.join()可能需要更改为message.member.voice.channel.join()

答案 1 :(得分:0)

问题似乎出在这里:

if(!message.member.voice.channel.join){ message.channel.send("You must be in a voice channel to play music!"); return; }

您需要删除.join部分,因为Discord.js中不存在此类内容