Javascript 尝试将音频从youtube流式传输到语音频道时发生DiscordAPIError

Javascript 尝试将音频从youtube流式传输到语音频道时发生DiscordAPIError,javascript,node.js,audio,discord,discord.js,Javascript,Node.js,Audio,Discord,Discord.js,我正在为我的discord机器人添加流式播放音乐的功能。实际上,我以前在这里使用过相同的代码,并且工作正常,但现在我遇到了一个错误 (节点:2334)未处理的PromisejectionWarning:DiscordAPIError:无法发送空消息 在RequestHandler.execute(/home/milk/Desktop/mr-impostor-2/node_modules/discord.js/src/rest/RequestHandler.js:154:13) 在处理和拒绝时(内

我正在为我的discord机器人添加流式播放音乐的功能。实际上,我以前在这里使用过相同的代码,并且工作正常,但现在我遇到了一个错误

(节点:2334)未处理的PromisejectionWarning:DiscordAPIError:无法发送空消息 在RequestHandler.execute(/home/milk/Desktop/mr-impostor-2/node_modules/discord.js/src/rest/RequestHandler.js:154:13) 在处理和拒绝时(内部/process/task_queues.js:97:5) async RequestHandler.push(/home/milk/Desktop/mr-impostor-2/node_modules/discord.js/src/rest/RequestHandler.js:39:14) (节点:2334)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志
--unhandled rejections=strict
(请参阅)。(拒绝id:1) (节点:2334)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程

下面是故障代码

async execute(message, serverQueue, arg){
    function play(guild, song, serverQueue){
        if(!song){
            serverQueue.voiceChannel.leave();
            queue.delete(guild.id);
            return
        }
        const dispatcher = serverQueue.connection
            .play(ytdl(song.url))
            .on("finish", () =>{
                serverQueue.songs.shift();
                play(guild, serverQueue.songs[0]);
            })
            .on("error", error => console.log(error))
        
        dispatcher.setVolumeLogarithmic(serverQueue.volume/5);
        serverQueue.textChannel.send(`Started playing: **${song.title}**`);
    }

    var voiceChannel = message.member.voice.channel;
    if(!voiceChannel){
        return message.channel.send("You must be in a voice channel to use this command.");
    }

    const songInfo = await(ytdl.getInfo(arg));
    const song = {
        title: songInfo.videoDetails.title,
        url: songInfo.videoDetails.video_url,
    };

    if(!serverQueue){
        const queueConstruct = {
            textChannel: message.channel,
            voiceChannel: voiceChannel,
            connection: null,
            songs: [],
            volume: 5,
            playing: true,
        }
        global.queue.set(message.guild.id, queueConstruct);
        queueConstruct.songs.push(song);

        try{
            var connection = await voiceChannel.join();
            queueConstruct.connection = connection;
            play(message.guild, queueConstruct.songs[0], queueConstruct);
        }catch(e){
            global.queue.delete(message.guild.id);
            return message.channel.send(e);
        }

    }else{
        serverQueue.songs.push(song);
        return message.channel.send(`${song.title} has been added to the queue!`);
    }
}

如果有必要的话,我正在Linux的ParrotOS上编码。我已验证是否安装了ffmpeg,是否安装了ytdl。

错误引用是哪一行?