fill_player_queue now recursively refetches until queue size is ensured

This commit is contained in:
2021-12-03 21:24:57 +01:00
parent 76bfd719c3
commit 0a14d9a93c
3 changed files with 19 additions and 1 deletions
+6 -1
View File
@@ -95,10 +95,11 @@ class Music(BaseCog):
async def fill_player_queue(self, player: DefaultPlayer, buffer: Optional[int] = 1):
queries = await self.bot.global_playlist.pick_random(buffer)
# Get the results for the query from Lavalink.
failed_queries: list[str] = []
for query in queries:
result = await player.node.get_tracks(query)
if not result or not result["tracks"]:
failed_queries.append(query)
continue
track = lavalink.models.AudioTrack(
@@ -106,6 +107,10 @@ class Music(BaseCog):
)
player.add(requester=self.bot.user.id, track=track)
if len(failed_queries) > 0:
await self.bot.global_playlist.remove_tracks(failed_queries)
await self.fill_player_queue(player, len(failed_queries))
async def create_track_embed(self, track: AudioTrack) -> Embed:
embed_color = self.bot.colors["embed"]
embed = discord.Embed(