diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2022-07-08 12:09:06 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2022-07-08 12:09:06 -0400 |
| commit | 2471564098b1de1a635d90f381ef67cf2cb43511 (patch) | |
| tree | c0e92769059e51187f8645f2b43bf26a8cef8a71 | |
| parent | 83e4c8679c656ecb352ddc34d5dced9518ba240a (diff) | |
| download | DLAP-2471564098b1de1a635d90f381ef67cf2cb43511.tar.gz DLAP-2471564098b1de1a635d90f381ef67cf2cb43511.tar.bz2 DLAP-2471564098b1de1a635d90f381ef67cf2cb43511.zip | |
New command; Some tweaks
| -rw-r--r-- | AudioBackend.js | 8 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | commands/reshuffle.js | 37 | ||||
| -rw-r--r-- | commands/status.js | 11 |
4 files changed, 49 insertions, 8 deletions
diff --git a/AudioBackend.js b/AudioBackend.js index d1f54c4..bdd3738 100644 --- a/AudioBackend.js +++ b/AudioBackend.js @@ -48,8 +48,9 @@ export async function voiceInit(bot) { adapterCreator: channel.guild.voiceAdapterCreator }); - connection.on(VoiceConnectionStatus.Ready, () => { + connection.on(VoiceConnectionStatus.Ready, async () => { console.log('Ready to blast some beats!'); + await shufflePlaylist(bot); }); connection.on(VoiceConnectionStatus.Destroyed, () => { @@ -61,7 +62,6 @@ export async function voiceInit(bot) { nextAudio(bot); }) - await shufflePlaylist(bot); return connection.subscribe(player); }).catch(e => { console.error(e) }) } @@ -84,7 +84,7 @@ function shuffleArray(array) { return array; } -async function shufflePlaylist(bot) { +export async function shufflePlaylist(bot) { console.log('Shuffling beats...'); currentTrack = 0 audioArray = files; @@ -97,12 +97,10 @@ async function shufflePlaylist(bot) { export async function nextAudio(bot) { let totalTrack = files.length totalTrack-- - console.log(totalTrack) if (currentTrack > totalTrack) { console.log('All beats in the playlist has finished, reshuffling...') await shufflePlaylist(); } else { - console.log(files.length) currentTrack++ audio = audioArray[currentTrack]; } @@ -42,6 +42,7 @@ play - Resumes music. play (int) - Input a number for the selection for the audio file. pause - Pauses music. skip - Skips the audio track. +reshuffle - Reshuffles the playlist leave - Leaves voice chat. shutdown - Powers off the bot. ``` diff --git a/commands/reshuffle.js b/commands/reshuffle.js new file mode 100644 index 0000000..5312d68 --- /dev/null +++ b/commands/reshuffle.js @@ -0,0 +1,37 @@ +/************************************************************************** + * + * 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 { player, shufflePlaylist } from "../AudioBackend.js" +import { PermissionFlagsBits } from "discord-api-types/v10" + +export default { + data: new SlashCommandBuilder() + .setName('reshuffle') + .setDescription('Reshuffles the playlist') + .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), + async execute(interaction) { + // Command not fully functional yet + await interaction.reply({content:`Reshuffling the playlist...`, ephemeral:true}); + player.stop(); + return await shufflePlaylist(); + }, +};
\ No newline at end of file diff --git a/commands/status.js b/commands/status.js index e012239..7952238 100644 --- a/commands/status.js +++ b/commands/status.js @@ -28,13 +28,18 @@ export default { .setName('status') .setDescription('Checks what audio file is playing currently'), async execute(interaction, bot) { - let nextAudio = currentTrack - nextAudio++ + + let audioID = currentTrack + audioID++ + + let audioName = audioArray[audioID] + audioName = audioName.split('.').slice(0, -1).join('.'); + let controlEmbed = new MessageEmbed() .setAuthor({name: `${bot.user.username} Status`, iconURL: bot.user.avatarURL()}) .addField('State', playerState) .addField('Currently Playing', audio) - .addField('Next Music', audioArray[nextAudio]) + .addField('Up Next', audioName) .setColor('#0066ff') interaction.reply({embeds:[controlEmbed], ephemeral:true}) }, |
