所以我想让我的discord机器人播放音乐,但当一首歌结束时,它会再次播放。这也适用于skip命令。你必须用它两次。以下是“下一步播放”的代码:
def playNext(self):
if len(self.musicQueue) > 0:
self.isPlaying = True
mURL = self.musicQueue[0][0]['source']
del self.musicQueue[0][0]
self.vc.play(discord.FFmpegPCMAudio(mURL, **self.FFEMPEG_OPTIONS), after=lambda e: self.playNext())
else:
self.isPlaying = False
这是skip的代码
@commands.command(aliases=['skip'])
async def s(self, ctx):
if self.vc != "":
self.vc.stop()
await self.playMusic()
对于skip,它给出了已经播放两次音乐的错误,并在第二次播放时停止,如果您让它播放两次,则表示VoiceChannel对象不可订阅。请帮忙
如果看不到你的
musicQueue
属性,很难判断,但它看起来像是list
的list
的dict
。因此,当您调用del self.musicQueue[0][0]
时,您正在删除第一个嵌套列表的第一个元素,但是仅包含空列表的列表的长度仍然大于0
您应该考虑使用^{} 或^{} ,以便从^ {< CD9>}或^ {CD10>}删除^ ^ }或^ {CD12>}的项目,以用于^ {CD13>}。这将简化您的代码
相关问题 更多 >
编程相关推荐