创建歌曲队列Discord.js

时间:2017-09-13 11:06:28

标签: bots discord

我终于找到了一种让我的Discord bot从YouTube播放音频的方法,使用“yt-dl”库。

我已经制作了播放歌曲所需的所有命令。 播放,暂停,停止(结束歌曲)。

我为用户提供的URL播放了一个简单的命令,例如播放歌曲。我怎么可能创建一个队列?然后,当当前的歌曲结束时,让它播放队列中的下一首歌曲?

2 个答案:

答案 0 :(得分:0)

您只需创建歌曲列表,查看如何创建列表,查看此帖子here。 (您也可以使用数组,如果您只想限制队列的长度,这可能会有所帮助)

(还有一个人为javascript创建了一个列表函数,它的工作方式类似于.NET的通用列表,你可以查看here。)

您可能还想创建一个对象,将您的歌曲详细信息存储在列表中。

答案 1 :(得分:0)

    var servers = {}; //obj


    var id = "HgzGwKwLmgM" //"something"
    //need provide id ^

    //example if with array <inside play function>
     if (!servers[message.guild.id]) servers[message.guild.id] = {
                    queue: [],
                    videodescription: [],
                    videolengh: [],
                    videotitle: [],
                    videothumbnailUrl: [],
                    videourl: []
                };

     server = servers[message.guild.id]; //method


    //fetchVideoInfo is part of nmp youtube-info@1.1.1
    //npm install youtube-info --save


server.queue.push(id);

     fetchVideoInfo(id, function (err, videoInfo) {
     if (err) throw new Error(err);

    message.reply(' The song: **' + videoInfo.title + "** has been added to the queue list.");

    server.videolengh.push(videoInfo.duration);//integer
    server.videothumbnailUrl.push(videoInfo.thumbnailUrl);
    server.videourl.push(videoInfo.url);
    server.videotitle.push(videoInfo.title);
    server.videodescription.push(videoInfo.description);

    //(videoInfo.description in fetchVideoInfo) returning html

    });

    //                              |
    //later you can call components V like but i will require method 

    console.log(server.queue[0] + "\n");
    //or
    console.log(server.videodescription[0]);


    //also don't forget to "skip"
    //example server.queue.shift();