我尝试了用discord.py
制作一个不和谐机器人。我在跳过命令部分。我已经完成了其他部分,如播放和排队命令。
我尝试使用命令self.vc. stop()
停止歌曲并跳到下一首,但没有成功,有人能帮我吗?这是我做的详细跳过命令:
class music_cog(commands.Cog):
# all the stuff over here
@commands.command(aliases=["continue"])
async def skip(self, ctx):
if self.vc != "":
self.vc.stop()
# plays the next song
await self.play_music()
我不知道你想做什么,但看起来斯帕先生的回答可能会对你有所帮助。
根据您实现play_music()
的方式,您应该在vc.play
的参数之后使用。以下是提供的片段:
import asyncio
def play_next(ctx, source):
if len(self.song_queue) >= 1:
del self.song_queue[0]
vc = get(self.bot.voice_clients, guild=ctx.guild)
vc.play(discord.FFmpegPCMAudio(source=source, after=lambda e: play_next(ctx))
asyncio.run_coroutine_threadsafe(ctx.send("No more songs in queue."))
这里的关键是根据我的理解,在之后使用skip()
作为的lambda。