我怎样才能使这个代码循环?

我正试图让它在我的 Discord 机器人中成功循环。我想要的是当命令运行时,机器人从中挑选一首歌曲1-10并播放它(已经完成),并且在播放完这首歌之后,它应该重复挑选一首歌曲并播放它。


我不知道该怎么做。


这是我的代码:


client.on('message', async message => {

    var isReady = true;


    if (!message.content.startsWith(prefix) || message.author.bot) return;


    const args = message.content.slice(prefix.length).split(/ +/);

    const command = args.shift().toLowerCase();


    if (message.content === `${prefix}KOLARADIO`) {

        if (message.member.voice.channel) {

            const connection = await message.member.voice.channel.join();


            songRandom = Math.floor((Math.random() * 10) + 1);


            if (songRandom === 1) {

                const dispatcher = connection.play('KOCK_MUSIC/a.mp3')

                dispatcher.on('start', () => {

                    console.log('audio ' + songRandom + ' is playing');

                });


                dispatcher.on('finish', () => {

                    console.log('audio has finished playing');

                })


                dispatcher.on('error', console.error);

            }


            else if (songRandom === 2) {

                const dispatcher = connection.play('KOCK_MUSIC/b.mp3')

                dispatcher.on('start', () => {

                    console.log('audio ' + songRandom + ' is playing');

                });


                dispatcher.on('finish', () => {

                    console.log('audio has finished playing');

                });


                dispatcher.on('error', console.error);

            }


            else if ...

            }

            return songRandom;

        };

    };

});


守候你守候我
浏览 99回答 1
1回答

慕后森

我有几个建议,最后一个可以让你永远播放你的播放列表,但需要前面的两个都起作用。首先,您需要将您的歌曲放在一个数组中。这样你就不需要重复自己来播放不同的歌曲。const songs = [   'KOCK_MUSIC/a.mp3',    // ... more music];其次,您的歌曲选择器应该使用 song.length 来选择下一首歌曲,而不是依赖于您拥有 10 首歌曲。这样您就可以在以后添加和删除歌曲而不会破坏代码。最后,你应该有这样的功能。playSong() {    const songId = Math.floor(Math.random() * songs.length);    connection.play(songs[songId]).on("finish", playSong);}这将在上一首歌曲结束时递归播放一首新歌曲。小心,这应该永远运行。你可能想给它一个停止的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript