我的不和谐机器人(node.js)加入了一个频道,但没有播放任何内容,然后离开了

时间:2020-02-22 15:54:13

标签: node.js discord discord.js

每当我在YouTube链接上使用+ play命令时,该机器人就会加入该频道,不播放任何内容然后继续离开,并且我不明白为什么,我也不是很擅长代码,所以我尝试修复它不起作用。如果有人知道答案不正确,请真的感谢您的帮助。

谢谢。

(注意,我也有一个跳过和停止选项,它们工作正常,但为了使代码简短而在此处删除了这些选项)

const Discord = require('discord.js');
const { Client, Attachment } = require('discord.js');
const bot = new Client();

const ytdl = require("ytdl-core");

const token = '*************';

const PREFIX = '+';

var servers  = {};

bot.on('ready', () =>{
    console.log('Bot Online');
})

bot.on('message', message=>{
    let args = message.content.substring(PREFIX.length).split(" ");

    switch(args[0]){
                case 'play':            
            function play(connection, message){
                var server = servers[message.guild.id];
                server.dispatcher = connection.playStream(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("Please add a link");
                 return;
             }
             if(!message.member.voiceChannel){
                 message.channel.send("You must be in a channel to play songs");
                 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;
     }
});

bot.login(token);

0 个答案:

没有答案