我正在制作音乐机器人,目前我想添加一个显示队列中所有歌曲的队列命令。
upcoming = list(itertools.islice(player.queue._queue, 0, 9))
counter = 1
for song in upcoming:
counter = counter + 1
print(f"{counter}. {song['title']}")
embed = discord.Embed(description=f"**{counter}**. [{song['title']}]({song['url']})")
embed.set_thumbnail(url=self.bot.user.avatar_url)
embed.set_author(name="Playing Next:")
await ctx.send(embed=embed)
这是我希望的样子:
1. Song 1
2. Song 2
3. Song 3
4. Song 4
5. Song 5
6. Song 6
7. Song 7
8. Song 8
9. Song 9
相反,它会将每一行发送到单独的嵌入中。
答案 0 :(得分:0)
您正在创建一个新的嵌入,并将其发送给循环的每次迭代。最简单的解决方案是不进入列表理解,而是将所有内容移出for循环,除了以下内容:
embed = discord.Embed(description='')
for song in upcoming:
embed.description += f"**{counter}**. [{song['title']}]({song['url']})\n"
... other embed stuff
... await send embed