Как я могу сделать этот код l oop? [discord.js] - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь получить это до oop в моем боте 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;
        };
    };
});

1 Ответ

0 голосов
/ 17 июня 2020

У меня есть пара предложений, последнее из которых позволит вам воспроизводить ваш плейлист бесконечно, но требует, чтобы работали оба предыдущих.

Во-первых, вам нужно поместить свои песни в массив. Таким образом, вам не нужно будет повторяться, чтобы играть разные песни. Таким образом, вы можете добавлять и удалять песни позже без нарушения кода.

Наконец, у вас должна быть такая функция.

playSong() {
    const songId = Math.floor(Math.random() * songs.length);
    connection.play(songs[songId]).on("finish", playSong);
}

Это будет рекурсивно воспроизводить новую песню, когда предыдущая песня отделка. Будьте осторожны, это должно работать вечно. Вы можете дать ему возможность остановиться.

...