const { Command } = require('discord.js-commando'); const { MessageEmbed } = require('discord.js'); const emoji = require('emoji-random'); module.exports = class ShuffleVoice extends Command { constructor(client) { super(client, { name: 'shuffle', group: 'voice', memberName: 'shuffle', description: 'shuffle the queue', guildOnly: true, examples: ['s5n!shuffle'] }); } run(msg) { var voiceChannel = msg.member.voice.channel; if (!voiceChannel) return msg.reply('join channel and try again k ' + emoji.random()); if ( typeof msg.guild.musicData.songDispatcher == 'undefined' || msg.guild.musicData.songDispatcher == null ) { return msg.reply('there is no song playing right now ' + emoji.random()); } if (msg.guild.musicData.queue.length < 1) return msg.say('There are no songs in queue ' + emoji.random()); shuffleQueue(msg.guild.musicData.queue); const titleArray = []; msg.guild.musicData.queue.map(obj => { titleArray.push(obj.title); }); var queueEmbed = new MessageEmbed() .setColor(0xF97DAE) .setTitle('new music q ' + emoji.random()); for (let i = 0; i < titleArray.length; i++) { queueEmbed.addField(`${i + 1}:`, `${titleArray[i]}`); } return msg.say(queueEmbed); } }; function shuffleQueue(queue) { for (let i = queue.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [queue[i], queue[j]] = [queue[j], queue[i]]; } }