From 898fd8b7f4054470f8a358dfa890956756d85222 Mon Sep 17 00:00:00 2001 From: phxntxm Date: Wed, 7 Jun 2017 03:53:15 -0500 Subject: [PATCH] Add a second check to ensure we are not playing before actually overwriting the song/dj --- cogs/music.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/cogs/music.py b/cogs/music.py index a4667a0..be822d5 100644 --- a/cogs/music.py +++ b/cogs/music.py @@ -104,20 +104,28 @@ class VoiceState: async def next_song(self): if not self.user_queue: - self.current = await self.songs.get_next_entry() + song = await self.songs.get_next_entry() else: try: - self.dj = self.djs.popleft() + dj = self.djs.popleft() except IndexError: - self.current = None + song = None else: - self.current = await self.dj.get_next_entry() + song = await self.dj.get_next_entry() self.djs.rotate(-1) - if self.current is None: - self.djs.remove(self.dj) + if song is None: + self.djs.remove(dj) await self.next_song() else: - self.current.requester = self.dj.member + self.current.requester = dj.member + + # Add an extra check here in case in the very short period of time possible, someone has queued a + # song while we are downloading the next + if not self.playing: + self.dj = dj + + if not self.playing: + self.current = song class Music: