Python 如何在执行另一个命令时中断discord.py命令中的循环?
因此,我在我的discord bot(使用discord.py制作)中有一个命令,它基本上是发送一条消息,每条消息之间有一个延迟(以秒为单位)。我通过一个while循环实现了它,有没有一种方法可以在执行不同的命令时中断该循环,而不必等待Python 如何在执行另一个命令时中断discord.py命令中的循环?,python,loops,command,discord.py,Python,Loops,Command,Discord.py,因此,我在我的discord bot(使用discord.py制作)中有一个命令,它基本上是发送一条消息,每条消息之间有一个延迟(以秒为单位)。我通过一个while循环实现了它,有没有一种方法可以在执行不同的命令时中断该循环,而不必等待时间。睡眠(延迟)要完成吗 i、 e 因此,基本上目前正在发生的是,如果我试图使用这个命令来停止前一个命令的工作,我必须等待time.sleep()来完成,这是我不想要的。任何帮助都将不胜感激。请使用。您可以使用cancel()方法立即停止它们 例如: 来自dis
时间。睡眠(延迟)
要完成吗
i、 e
因此,基本上目前正在发生的是,如果我试图使用这个命令来停止前一个命令的工作,我必须等待time.sleep()
来完成,这是我不想要的。任何帮助都将不胜感激。请使用。您可以使用cancel()
方法立即停止它们
例如:
来自discord.ext导入任务
@client.command()
异步def激活(ctx,引号,延迟:int):
全局垃圾邮件循环
@tasks.loop(秒=延迟)
异步定义垃圾邮件_循环(q):
等待ctx发送(q)
垃圾邮件_循环。开始(报价)
等待ctx.send(“成功激活垃圾邮件”)
@client.command()
异步def停用(ctx):
spam_loop.cancel()
等待ctx.send(“已成功停用垃圾邮件”)
@client.command()
async def activate(ctx, quote, delay: int):
await ctx.send("Successfully activated SpamMode")
global a
a = 1
while a == 1:
await ctx.send(quote)
time.sleep(delay)
@client.command()
async def deactivate(ctx):
global a
a = 2
await ctx.send("Successfully deactivated SpamMode")