diff options
| author | Max Isom <[email protected]> | 2020-03-14 22:03:31 -0500 |
|---|---|---|
| committer | Max Isom <[email protected]> | 2020-03-14 22:03:31 -0500 |
| commit | d70bd167973b5171dbe82bac2daba04e73602bfa (patch) | |
| tree | 885f1a1b992cfea6002763742af7311f665a0a1f /src/services/queue.ts | |
| parent | 9e1d656e520b88a9c88f3ac6ebfd73843cc821f1 (diff) | |
| download | muse-d70bd167973b5171dbe82bac2daba04e73602bfa.tar.xz muse-d70bd167973b5171dbe82bac2daba04e73602bfa.zip | |
Add queue clear command
Diffstat (limited to 'src/services/queue.ts')
| -rw-r--r-- | src/services/queue.ts | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/services/queue.ts b/src/services/queue.ts index be59c7f..0b98b8e 100644 --- a/src/services/queue.ts +++ b/src/services/queue.ts @@ -56,10 +56,7 @@ export default class { } add(guildId: string, song: QueuedSong): void { - if (!this.guildQueues.get(guildId)) { - this.guildQueues.set(guildId, []); - this.queuePositions.set(guildId, 0); - } + this.initQueue(guildId); if (song.playlist) { // Add to end of queue @@ -95,7 +92,27 @@ export default class { this.guildQueues.set(guildId, [queue[0], ...shuffle(queue.slice(1))]); } + clear(guildId: string): void { + this.initQueue(guildId); + const queue = this.guildQueues.get(guildId); + + const newQueue = []; + + if (queue!.length > 0) { + newQueue.push(queue![0]); + } + + this.guildQueues.set(guildId, newQueue); + } + size(guildId: string): number { return this.get(guildId).length; } + + private initQueue(guildId: string): void { + if (!this.guildQueues.get(guildId)) { + this.guildQueues.set(guildId, []); + this.queuePositions.set(guildId, 0); + } + } } |
