You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Luno/util/actmusiccont.js

55 lines
2.9 KiB

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);}
});
};