aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2022-07-13 21:58:34 -0400
committerAndrew Lee <alee14498@protonmail.com>2022-07-13 21:58:34 -0400
commitd5ca0d40e77462cc7ad9e0d26d3430da21874d4f (patch)
treed264fac27982604bd7a17b5cf43f112dbe8cc83b
parent0937181902a0e79d6bdf72295be259a41794f855 (diff)
downloadDLAP-d5ca0d40e77462cc7ad9e0d26d3430da21874d4f.tar.gz
DLAP-d5ca0d40e77462cc7ad9e0d26d3430da21874d4f.tar.bz2
DLAP-d5ca0d40e77462cc7ad9e0d26d3430da21874d4f.zip
Renamed skip to next, added previous command
-rw-r--r--AudioBackend.js14
-rw-r--r--README.md2
-rw-r--r--bot.js2
-rw-r--r--commands/next.js (renamed from commands/skip.js)8
-rw-r--r--commands/previous.js34
-rw-r--r--commands/reshuffle.js2
6 files changed, 55 insertions, 7 deletions
diff --git a/AudioBackend.js b/AudioBackend.js
index 354f26d..7d24b1c 100644
--- a/AudioBackend.js
+++ b/AudioBackend.js
@@ -39,6 +39,7 @@ export let currentTrack;
export let playerState;
export let isAudioStatePaused;
+let totalTrack = files.length;
export async function voiceInit(bot) {
bot.channels.fetch(voiceChannel).then(async channel => {
@@ -97,7 +98,6 @@ export async function shufflePlaylist(bot) {
}
export async function nextAudio(bot) {
- let totalTrack = files.length;
totalTrack--;
if (currentTrack >= totalTrack) {
console.log('All beats in the playlist has finished, repeating beats...');
@@ -109,6 +109,18 @@ export async function nextAudio(bot) {
}
}
+export async function previousAudio(bot, interaction) {
+ if (currentTrack <= 0) {
+ return await interaction.reply({ content: 'You are at the beginning of the playlist, cannot go further than this', ephemeral: true });
+ } else {
+ await interaction.reply({ content: 'Playing previous music', ephemeral: true });
+ player.stop();
+ currentTrack--;
+ audio = files[currentTrack];
+ return await playAudio(bot);
+ }
+}
+
export async function inputAudio(bot, integer) {
const inputFiles = readdirSync('music');
audio = inputFiles[integer];
diff --git a/README.md b/README.md
index b8f9c73..6ac5f88 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ join - Joins voice chat.
play - Resumes music.
play (int) - Input a number for the selection for the audio file.
pause - Pauses music.
-skip - Skips the audio track.
+next - Goes to next track.
reshuffle - Reshuffles the playlist
leave - Leaves voice chat.
shutdown - Powers off the bot.
diff --git a/bot.js b/bot.js
index 65e8488..8465874 100644
--- a/bot.js
+++ b/bot.js
@@ -36,6 +36,8 @@ bot.login(token);
* Audio streaming
* Metadata support
* m3u support
+ * Custom string support
+ * Non repeat support
*/
// Slash Command Handler
diff --git a/commands/skip.js b/commands/next.js
index b276790..589389c 100644
--- a/commands/skip.js
+++ b/commands/next.js
@@ -25,12 +25,12 @@ import { PermissionFlagsBits } from 'discord-api-types/v10';
export default {
data: new SlashCommandBuilder()
- .setName('skip')
- .setDescription('Skips the audio track')
+ .setName('next')
+ .setDescription('Goes to next track')
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
async execute(interaction, bot) {
- await interaction.reply({ content: `Skipping ${audio}`, ephemeral: true });
+ await interaction.reply({ content: 'Playing next music', ephemeral: true });
player.stop();
- return await nextAudio(bot, interaction);
+ return await nextAudio(bot);
}
};
diff --git a/commands/previous.js b/commands/previous.js
new file mode 100644
index 0000000..ed3be07
--- /dev/null
+++ b/commands/previous.js
@@ -0,0 +1,34 @@
+/**************************************************************************
+ *
+ * DLAP Bot: A Discord bot that plays local 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 { previousAudio } from '../AudioBackend.js';
+import { PermissionFlagsBits } from 'discord-api-types/v10';
+
+export default {
+ data: new SlashCommandBuilder()
+ .setName('previous')
+ .setDescription('Goes to previous track')
+ .setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
+ async execute(interaction, bot) {
+ return await previousAudio(bot, interaction);
+ }
+};
diff --git a/commands/reshuffle.js b/commands/reshuffle.js
index e4e6745..ee42289 100644
--- a/commands/reshuffle.js
+++ b/commands/reshuffle.js
@@ -37,6 +37,6 @@ export default {
player.stop();
await shufflePlaylist(bot);
}
- return (shuffle === true) ? await shuffleDetected(bot) : await interaction.reply({ content: 'Shuffle mode is disabled, enable it on the configuration to access this command.', ephemeral: true });
+ return (shuffle === true) ? await shuffleDetected(bot) : await interaction.reply({ content: 'Shuffle mode is disabled, enable it in the configuration file to access this command.', ephemeral: true });
}
};