diff options
Diffstat (limited to 'backend.js')
-rw-r--r-- | backend.js | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/backend.js b/backend.js index 51419da..e2213d5 100644 --- a/backend.js +++ b/backend.js @@ -511,10 +511,22 @@ class QueuePlayer extends EventEmitter { } async playOrSeek(item, time) { + if (!isTrack(item)) { + // This only makes sense to call with individual tracks! + return + } + if (item === this.playingTrack) { this.seekTo(time) } else { - this.queue(item, this.playingTrack) + // Queue the track, but only if it's not already in the queue, so that we + // respect an existing queue order. + const queue = this.queueGrouplike + const queueIndex = queue.items.indexOf(item) + if (queueIndex === -1) { + this.queue(item, this.playingTrack) + } + this.play(item, time) } } |