From a8ec9fe1b8e25af4e1faa6548ee74bfa0643831f Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Tue, 5 Jul 2022 18:16:06 -0400 Subject: The start of scrapping the control panel feature --- commands/control.js | 122 +--------------------------------------------------- 1 file changed, 2 insertions(+), 120 deletions(-) (limited to 'commands/control.js') diff --git a/commands/control.js b/commands/control.js index 6007dcc..435c102 100644 --- a/commands/control.js +++ b/commands/control.js @@ -20,14 +20,9 @@ ***************************************************************************/ import { SlashCommandBuilder } from '@discordjs/builders' -import { MessageEmbed, MessageActionRow, MessageButton } from 'discord.js' -import { audio, player, destroyAudio, voiceInit, stopBot, searchAudio, playerState, audioState } from '../AudioBackend.js' +import { controlPanel } from '../AudioBackend.js' import config from '../config.json' assert {type: 'json'} -export let controlEmbed -export let controlButtons -export let controlButtons2 - let runOnce = false export default { @@ -36,119 +31,6 @@ export default { .setDescription('Controlling the music'), async execute(interaction, bot) { if (![config.botOwner].includes(interaction.user.id)) return await interaction.reply({ content: "You do not have permissions to execute this command.", ephemeral: true }); - if (runOnce === true) return await interaction.reply({content:'You already executed this command', ephemeral:true}) - - controlEmbed = new MessageEmbed() - .setAuthor({name: `${bot.user.username} Control Panel`, iconURL: bot.user.avatarURL()}) - .addField('State', playerState) - .addField('Currently Playing', audio) - //.addField('Next Music', '(a possible feature when queue system is implemented?)') - .setColor('#0066ff') - - controlButtons = new MessageActionRow() - .addComponents( - new MessageButton() - .setStyle('SUCCESS') - .setLabel('Join') - .setCustomId('join') - .setDisabled(true), - new MessageButton() - .setStyle('SECONDARY') - .setLabel('Play') - .setCustomId('play') - .setDisabled(true), - new MessageButton() - .setStyle('SECONDARY') - .setLabel('Pause') - .setCustomId('pause'), - new MessageButton() - .setStyle('SECONDARY') - .setLabel('Skip') - .setCustomId('skip'), - new MessageButton() - .setStyle('PRIMARY') - .setLabel('>>') - .setCustomId('next'), - ); - - controlButtons2 = new MessageActionRow() - .addComponents( - new MessageButton() - .setStyle('PRIMARY') - .setLabel('<<') - .setCustomId('back'), - new MessageButton() - .setStyle('DANGER') - .setLabel('Leave') - .setCustomId('leave'), - new MessageButton() - .setStyle('DANGER') - .setLabel('Power Off') - .setCustomId('stop') - ) - - const filter = i => i.user.id === config.botOwner; - - const collector = interaction.channel.createMessageComponentCollector({filter}); - - collector.on('collect', async ctlButton => { - if (ctlButton.customId === 'join') { - await ctlButton.reply({content:'Joining voice channel', ephemeral:true}); - controlButtons.components[0].setDisabled(true); - controlButtons.components[1].setDisabled(true); - controlButtons.components[2].setDisabled(false); - controlButtons.components[3].setDisabled(false); - controlButtons2.components[1].setDisabled(false); - await interaction.editReply({components:[controlButtons]}); - return await voiceInit(bot); - } - if (ctlButton.customId === 'play') { - controlButtons.components[2].setDisabled(false); - controlButtons.components[1].setDisabled(true); - await interaction.editReply({components:[controlButtons]}); - await ctlButton.reply({content:'Resuming music', ephemeral:true}); - audioState(); - return player.unpause(); - } - if (ctlButton.customId === 'pause') { - controlButtons.components[2].setDisabled(true); - controlButtons.components[1].setDisabled(false); - await interaction.editReply({components:[controlButtons]}); - await ctlButton.reply({content:'Pausing music', ephemeral:true}); - audioState(); - return player.pause(); - } - if (ctlButton.customId === 'skip') { - await ctlButton.reply({content:`Skipping ${audio}`, ephemeral:true}); - player.stop(); - return await searchAudio(bot, interaction); - } - if (ctlButton.customId === 'next') { - return await interaction.editReply({ components: [controlButtons2] }).then(ctlButton.deferUpdate()); - } - if (ctlButton.customId === 'back') { - return await interaction.editReply({ components: [controlButtons] }).then(ctlButton.deferUpdate()); - } - if (ctlButton.customId === 'leave') { - await ctlButton.reply({content:'Leaving voice channel', ephemeral:true}); - console.log('Leaving voice channel...'); - controlButtons.components[0].setDisabled(false); - controlButtons.components[1].setDisabled(true); - controlButtons.components[2].setDisabled(true); - controlButtons.components[3].setDisabled(true); - controlButtons2.components[1].setDisabled(true); - await interaction.editReply({components:[controlButtons2]}); - return await destroyAudio(interaction); - } - if (ctlButton.customId === 'stop') { - await ctlButton.reply({content:`Powering off ${bot.user.username}...`, ephemeral:true}); - await interaction.deleteReply(); - return await stopBot(bot, interaction); - } - }); - - collector.on('end', collected => console.log(`Collected ${collected.size} items`)); - runOnce = true - return await interaction.reply({embeds:[controlEmbed], components:[controlButtons]}); + await controlPanel(interaction, bot); }, }; \ No newline at end of file -- cgit v1.2.3