Fix queue and player bugs

This commit is contained in:
Max Isom 2020-03-23 19:40:54 -05:00
parent 95ea8e9ad3
commit 334a2bf0a0
2 changed files with 28 additions and 20 deletions

View file

@ -43,7 +43,7 @@ export default class {
if (isPlaying) {
oldPosition = player.getPosition();
await player.forward();
player.manualForward();
}
await player.seek(8);
@ -51,13 +51,15 @@ export default class {
return new Promise((resolve, reject) => {
try {
setTimeout(async () => {
player.removeCurrent();
if (player.getCurrent()?.title === 'GO PACKERS!') {
player.removeCurrent();
if (isPlaying) {
await player.back();
await player.seek(oldPosition);
} else {
player.disconnect();
if (isPlaying) {
await player.back();
await player.seek(oldPosition);
} else {
player.disconnect();
}
}
resolve(true);

View file

@ -120,7 +120,9 @@ export default class {
}
// Was disconnected, need to recreate stream
return this.seek(this.getPosition());
if (!currentSong.isLive) {
return this.seek(this.getPosition());
}
}
try {
@ -160,20 +162,24 @@ export default class {
}
async forward(): Promise<void> {
if (this.queuePosition < this.queueSize() + 1) {
this.queuePosition++;
this.manualForward();
try {
if (this.getCurrent() && this.status !== STATUS.PAUSED) {
await this.play();
} else {
this.status = STATUS.PAUSED;
this.disconnect();
}
} catch (error) {
this.queuePosition--;
throw error;
try {
if (this.getCurrent() && this.status !== STATUS.PAUSED) {
await this.play();
} else {
this.status = STATUS.PAUSED;
this.disconnect();
}
} catch (error) {
this.queuePosition--;
throw error;
}
}
manualForward(): void {
if (this.queuePosition < this.queue.length) {
this.queuePosition++;
} else {
throw new Error('No songs in queue to forward to.');
}