aboutsummaryrefslogtreecommitdiff
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/control.js35
-rw-r--r--commands/list.js36
2 files changed, 64 insertions, 7 deletions
diff --git a/commands/control.js b/commands/control.js
index 8db425c..42c168a 100644
--- a/commands/control.js
+++ b/commands/control.js
@@ -20,9 +20,12 @@
***************************************************************************/
import { SlashCommandBuilder } from '@discordjs/builders'
+import { getVoiceConnection } from "@discordjs/voice";
import { MessageEmbed, MessageActionRow, MessageButton } from 'discord.js'
import { audio, player, playAudio } from '../AudioBackend.js'
+import fs from 'fs'
+let fileData;
export default {
data: new SlashCommandBuilder()
@@ -31,8 +34,9 @@ export default {
async execute(interaction, bot) {
const controlEmbed = new MessageEmbed()
.setAuthor({name:`${bot.user.username} Control Panel`, iconURL:bot.user.avatarURL()})
+ .addField('State', 'Playing')
.addField('Currently Playing', audio)
- .addField('Next Music', '(a possible feature?)')
+ //.addField('Next Music', '(a possible feature when queue system is implemented?)')
.setColor('#0066ff')
const controlButtons = new MessageActionRow()
@@ -55,17 +59,34 @@ export default {
.setCustomId('leave')
);
- const filter = i => i.customId === 'pause' && i.user.id === '242775871059001344';
-
- const collector = interaction.channel.createMessageComponentCollector({ filter, time: 15000 });
+ const collector = interaction.channel.createMessageComponentCollector();
collector.on('collect', async i => {
+ if (i.customId === 'play') {
+ player.unpause();
+ await i.reply({content:'Resuming music', ephemeral:true})
+ }
if (i.customId === 'pause') {
- await i.reply({content:'test'})
+ player.pause();
+ await i.reply({content:'Pausing music', ephemeral:true})
}
-
if (i.customId === 'skip') {
- await i.reply
+ player.pause();
+ await i.reply({content:`Skipping \`${audio}\`...`, ephemeral:true})
+ playAudio(bot);
+ }
+ if (i.customId === 'leave') {
+ await i.reply({content:'Leaving voice channel.', ephemeral:true})
+ console.log('Leaving voice channel...');
+ fileData = "Now Playing: Nothing";
+ fs.writeFile("now-playing.txt", fileData, (err) => {
+ if (err)
+ console.log(err);
+ });
+ audio = "Not Playing";
+ player.stop();
+ const connection = getVoiceConnection(interaction.guild.id);
+ connection.destroy();
}
});
diff --git a/commands/list.js b/commands/list.js
new file mode 100644
index 0000000..3d88ca6
--- /dev/null
+++ b/commands/list.js
@@ -0,0 +1,36 @@
+/**************************************************************************
+ *
+ * DLMP3 Bot: A Discord bot that plays local MP3 audio tracks.
+ * (C) Copyright 2022
+ * Programmed by Andrew Lee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ ***************************************************************************/
+
+import { SlashCommandBuilder } from '@discordjs/builders'
+import fs from 'fs'
+const musicFolder = './music';
+
+export default {
+ data: new SlashCommandBuilder()
+ .setName('list')
+ .setDescription('Lists the available audio tracks'),
+ async execute(interaction) {
+ /*
+ fs.readdirSync(musicFolder).forEach(file => {
+ return interaction.reply('Listing the available audio tracks...\n' + file);
+ });*/
+ },
+}; \ No newline at end of file