discord.py stop命令可以运行,但不能清除队列

时间:2020-07-07 21:27:10

标签: python-3.x bots discord discord.py discord.py-rewrite

-----播放部分效果很好-----

    async def play(self, ctx, *, arg):
        await ctx.channel.purge(limit=1)
        try: channel = ctx.author.voice.channel
        except: await ctx.send("❌ You're not connected to any channel!", delete_after = 5.0)
        else:
            channel = ctx.author.voice.channel
            voice = get(self.bot.voice_clients, guild=ctx.guild)
            song = Music.search(ctx.author.mention, arg)

------队列部分------

            if voice and voice.is_connected():
                await voice.move_to(channel)
            else:
                voice = await channel.connect()

            if not voice.is_playing():
                self.song_queue[ctx.guild] = [song]
                self.message[ctx.guild] = await ctx.send(embed=song['embed'])
                voice.play(discord.FFmpegPCMAudio(song['source'], **Music.FFMPEG_OPTIONS), after=lambda e: self.play_next(ctx))
                voice.is_playing()
            else:
                self.song_queue[ctx.guild].append(song)
                await self.edit_message(ctx)

----停止部分---- 只跳过音乐而不清除队列 我不知道这是怎么回事

    @commands.command(brief='$stop')
    async def stop(self, ctx):
        voice = get(self.bot.voice_clients, guild=ctx.guild)
        channel = ctx.message.author.voice.channel
        await ctx.channel.purge(limit=1)
        if voice and voice.is_playing():
            await ctx.send('⛔ Music Stopped', delete_after = 5.0)
            voice.stop(ctx.guild)
        else:
            await ctx.send("❌ I'm not playing any songs!", delete_after = 5.0)

0 个答案:

没有答案