diff options
| author | Cleo <[email protected]> | 2022-06-25 20:20:45 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-06-25 19:20:45 -0500 |
| commit | 6cdfefe174de4f6819815d3ec60a57b3ea9c9a01 (patch) | |
| tree | 50d0db7cb675c43c3a5c88797f419c1356e6e1cb /src/services | |
| parent | eb07ac6d2275a5aa30754c3ed4bc4f5c89a0c72e (diff) | |
| download | muse-6cdfefe174de4f6819815d3ec60a57b3ea9c9a01.tar.xz muse-6cdfefe174de4f6819815d3ec60a57b3ea9c9a01.zip | |
Add /loop support for individual songs (#707)
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/player.ts | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/services/player.ts b/src/services/player.ts index c8a95a4..0af6fec 100644 --- a/src/services/player.ts +++ b/src/services/player.ts @@ -60,6 +60,7 @@ export default class { public voiceConnection: VoiceConnection | null = null; public status = STATUS.PAUSED; public guildId: string; + public loopCurrentSong = false; private queue: QueuedSong[] = []; private queuePosition = 0; @@ -69,7 +70,6 @@ export default class { private lastSongURL = ''; private positionInSeconds = 0; - private readonly fileCache: FileCacheProvider; private disconnectTimer: NodeJS.Timeout | null = null; @@ -92,6 +92,7 @@ export default class { this.pause(); } + this.loopCurrentSong = false; this.voiceConnection.destroy(); this.audioPlayer?.stop(); @@ -523,6 +524,11 @@ export default class { private async onAudioPlayerIdle(_oldState: AudioPlayerState, newState: AudioPlayerState): Promise<void> { // Automatically advance queued song at end + if (this.loopCurrentSong && newState.status === AudioPlayerStatus.Idle && this.status === STATUS.PLAYING) { + await this.seek(0); + return; + } + if (newState.status === AudioPlayerStatus.Idle && this.status === STATUS.PLAYING) { await this.forward(1); } |
