Always resume

This commit is contained in:
Max Isom 2021-12-12 13:20:36 -05:00
parent f1756b9e9c
commit e4a8dde776
No known key found for this signature in database
GPG key ID: 25C9B1A7F6798880
2 changed files with 26 additions and 15 deletions

View file

@ -46,7 +46,6 @@ export default class implements Command {
const player = this.playerManager.get(msg.guild!.id); const player = this.playerManager.get(msg.guild!.id);
const queueOldSize = player.queueSize();
const wasPlayingSong = player.getCurrent() !== null; const wasPlayingSong = player.getCurrent() !== null;
if (args.length === 0) { if (args.length === 0) {
@ -147,6 +146,28 @@ export default class implements Command {
const firstSong = newSongs[0]; const firstSong = newSongs[0];
let statusMsg = '';
if (player.voiceConnection === null) {
await player.connect(targetVoiceChannel);
// Resume / start playback
await player.play();
if (wasPlayingSong) {
statusMsg = 'resuming playback';
}
}
// Build response message
if (statusMsg !== '') {
if (extraMsg === '') {
extraMsg = statusMsg;
} else {
extraMsg = `${statusMsg}, ${extraMsg}`;
}
}
if (extraMsg !== '') { if (extraMsg !== '') {
extraMsg = ` (${extraMsg})`; extraMsg = ` (${extraMsg})`;
} }
@ -156,19 +177,5 @@ export default class implements Command {
} else { } else {
await res.stop(`u betcha, **${firstSong.title}** and ${newSongs.length - 1} other songs were added to the queue${extraMsg}`); await res.stop(`u betcha, **${firstSong.title}** and ${newSongs.length - 1} other songs were added to the queue${extraMsg}`);
} }
if (player.voiceConnection === null) {
await player.connect(targetVoiceChannel);
if (player.status === STATUS.PAUSED && queueOldSize) {
// Resume playing from queue after being paused
await player.play();
}
}
if (queueOldSize === 0 && !wasPlayingSong) {
// Only auto-play if queue was empty before and nothing was playing
await player.play();
}
} }
} }

View file

@ -235,6 +235,10 @@ export default class {
return null; return null;
} }
/**
* Returns queue, not including the current song.
* @returns {QueuedSong[]}
*/
getQueue(): QueuedSong[] { getQueue(): QueuedSong[] {
return this.queue.slice(this.queuePosition + 1); return this.queue.slice(this.queuePosition + 1);
} }