我一直在尝试制作队列命令。这成功地将输入附加到 dict,例如 ['song1', 'song2']。但是尝试播放下一首歌曲而不等待当前歌曲播放完,导致已经播放错误。
async def queue(ctx):
ctx.message.guild.name = []
await ctx.message.channel.send('**-start of queue-**')
await ctx.message.channel.send('**-type end when done-**')
def ch(m):
return m.author == ctx.message.author and m.channel == ctx.message.channel
while True:
song = await client.wait_for('message', check=ch, timeout=30)
song_str = str(song.content)
song_f = song_str.translate({ord(c): None for c in string.whitespace})
if song_f == 'end':
print(ctx.message.guild.name)
break
ctx.message.guild.name.append(song_str)
vc = ctx.message.guild.voice_client
for song in ctx.message.guild.name:
player = await YTDLSource.from_url(song, loop=client.loop)
print(song)
vc.play(player)