aboutsummaryrefslogtreecommitdiff
path: root/src/services/player.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/player.ts')
-rw-r--r--src/services/player.ts8
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);
}