пишу музыкального бота, на данный момент столкнулся с проблемой, при вызове команды "play" бот проигрывает музыку, соответственно это заносится в очередь и каждый трек под своим номером. Но получилось так что часть кода почему-то не работает и при вводе команды для получения списка треков "queue" все треки имеют номер 1
Код:
@commands.command()
async def queue(self, ctx):
"""Retrieve a basic queue of upcoming songs."""
vc = ctx.voice_client
if not vc or not vc.is_connected():
embed = discord.Embed(title = "", description = "Я не подключен к голосовому каналу.", colour = 0x9370DB)
return await ctx.send(embed = embed)
player = self.get_player(ctx)
if player.queue.empty():
embed = discord.Embed(title = "", description="Очередь пуста.", colour = 0x9370DB)
return await ctx.send(embed = embed)
seconds = vc.source.duration % (24 * 3600)
hour = seconds // 3600
seconds %= 3600
minutes = seconds // 60
seconds %= 60
if hour > 0:
duration = "%d:%02d:%02d" % (hour, minutes, seconds)
else:
duration = "%02d:%02d" % (minutes, seconds)
# Grabs the songs in the queue...
upcoming = list(itertools.islice(player.queue._queue, 0, int(len(player.queue._queue))))
fmt = '\n'.join(f"`{(upcoming.index(_)) + 1}.` [{_['title']}]({_['webpage_url']}) | Запросил: {_['requester']}\n" for _ in upcoming)
embed = discord.Embed(title = f'Очередь для {ctx.guild.name}', description = fmt, colour = 0x9370DB)
embed.set_footer(text = f"{ctx.author}", icon_url = ctx.author.avatar_url)
await ctx.send(embed = embed)