aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/commands/play.ts37
-rw-r--r--src/services/player.ts4
2 files changed, 26 insertions, 15 deletions
diff --git a/src/commands/play.ts b/src/commands/play.ts
index 8fb5775..856edec 100644
--- a/src/commands/play.ts
+++ b/src/commands/play.ts
@@ -46,7 +46,6 @@ export default class implements Command {
const player = this.playerManager.get(msg.guild!.id);
- const queueOldSize = player.queueSize();
const wasPlayingSong = player.getCurrent() !== null;
if (args.length === 0) {
@@ -147,6 +146,28 @@ export default class implements Command {
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 !== '') {
extraMsg = ` (${extraMsg})`;
}
@@ -156,19 +177,5 @@ export default class implements Command {
} else {
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();
- }
}
}
diff --git a/src/services/player.ts b/src/services/player.ts
index 67b8b38..4a226c5 100644
--- a/src/services/player.ts
+++ b/src/services/player.ts
@@ -235,6 +235,10 @@ export default class {
return null;
}
+ /**
+ * Returns queue, not including the current song.
+ * @returns {QueuedSong[]}
+ */
getQueue(): QueuedSong[] {
return this.queue.slice(this.queuePosition + 1);
}