Refactor code with self._next()

This commit is contained in:
ekzyis 2021-09-26 01:56:05 +02:00
parent 94d018246c
commit 45244896c8
1 changed files with 9 additions and 6 deletions

View File

@ -54,6 +54,12 @@ class Music(commands.Cog):
# pylint: disable=no-member
self._handle_playback.cancel()
def _next(self):
"""Trigger playback of next song."""
self._queue.task_done()
if self._queue_lock.locked():
self._queue_lock.release()
@tasks.loop()
async def _handle_playback(self):
while True:
@ -64,16 +70,14 @@ class Music(commands.Cog):
# Bot is no longer in a voice channel.
# This could be the case because a stop command was issued.
# We will skip this (and possibly all remaining songs) in the queue
self._queue.task_done()
self._queue_lock.release()
self._next()
continue
audio = discord.FFmpegPCMAudio(song.audio_url, **self._ffmpeg_options)
def after(err):
if err:
print(f"Player error: {err}")
self._queue.task_done()
self._queue_lock.release()
self._next()
ctx.voice_client.play(audio, after=after)
embed = NowPlayingMessage(title=song.title, url=song.webpage_url)
await ctx.send(embed=embed)
@ -83,8 +87,7 @@ class Music(commands.Cog):
if ctx:
embed = ErrorMessage(str(err))
await ctx.send(embed=embed)
self._queue.task_done()
self._queue_lock.release()
self._next()
@_handle_playback.before_loop
async def before_handle_playback(self):