const Discord = require("discord.js"); const moment = require('moment'); require('moment-precise-range-plugin'); const updateController = require("./updatecontroller"); module.exports = async function activateControls(message, client) { let col = await message.createReactionCollector((r) => ['⏯️', '⏭️', '⏹️', '🔁', '🔉', '🔊'].includes(r.emoji.name), {time: 1000 * 60 * 30}); col.on('collect', async (r, u) => { if (!r.message.guild.members.cache.get(u.id).voice.channel || !r.message.guild.members.cache.get(u.id).voice.channel === client.misc.queue[message.guild.id].channel) {return;} let functions = { '⏯️': async () => { await client.misc.queue[message.guild.id].player.pause(!client.misc.queue[message.guild.id].player.paused); updateController(message, client); }, '⏭️': async () => { client.misc.queue[message.guild.id].queue.shift(); if (!client.misc.queue[message.guild.id].queue.length) { await client.lavacordManager.leave(message.guild.id); message.guild.channels.cache.get(client.misc.queue[message.guild.id].updates).send('Finished playing.'); col.stop(); return delete client.misc.queue[message.guild.id]; } await client.misc.queue[message.guild.id].player.play(client.misc.queue[message.guild.id].queue[0].song.track); updateController(message, client); }, '⏹️': async () => { await client.lavacordManager.leave(message.guild.id); message.guild.channels.cache.get(client.misc.queue[message.guild.id].updates).send('Finished playing.'); col.stop(); return delete client.misc.queue[message.guild.id]; }, '🔁': () => {}, '🔉': async () => { if (client.misc.queue[message.guild.id].volume <= 10) {return;} client.misc.queue[message.guild.id].volume -= 10; await client.misc.queue[message.guild.id].player.volume(client.misc.queue[message.guild.id].volume); updateController(message, client); }, '🔊': async () => { if (client.misc.queue[message.guild.id].volume >= 150) {return;} client.misc.queue[message.guild.id].volume += 10; await client.misc.queue[message.guild.id].player.volume(client.misc.queue[message.guild.id].volume); updateController(message, client); } }; return functions[r.emoji.name]();}); col.on('end', () => { if (!client.misc.queue[message.guild.id]) {return;} client.misc.queue[message.guild.id].controller.delete().catch(() => {}); if (client.misc.queue[message.guild.id].queue.length) {updateController(message, client);} }); };