aboutsummaryrefslogtreecommitdiff
path: root/src/services/player.ts
diff options
context:
space:
mode:
authorCleo <[email protected]>2022-06-25 20:20:45 -0400
committerGitHub <[email protected]>2022-06-25 19:20:45 -0500
commit6cdfefe174de4f6819815d3ec60a57b3ea9c9a01 (patch)
tree50d0db7cb675c43c3a5c88797f419c1356e6e1cb /src/services/player.ts
parenteb07ac6d2275a5aa30754c3ed4bc4f5c89a0c72e (diff)
downloadmuse-6cdfefe174de4f6819815d3ec60a57b3ea9c9a01.tar.xz
muse-6cdfefe174de4f6819815d3ec60a57b3ea9c9a01.zip
Add /loop support for individual songs (#707)
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);
}