diff options
Diffstat (limited to 'src/services/player.ts')
| -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); } |
