discord py:使用命令取消循环

时间:2020-03-06 15:03:36

标签: python discord.py

我的问题是:如果我要循环执行命令(例如“开始”),它会说:“距离……已经3个小时了”,循环10800秒( 3个小时),然后说:“距...已有6个小时了。”,因此,我遇到的问题是:如果我要创建一个名为“ stop”的命令,我将如何在“ start”命令中实现它“,它将检查是否已使用命令” stop“。如果是,则取消循环,如果尚未使用,则继续循环。

2 个答案:

答案 0 :(得分:0)

@bot.command()
async def startloop(self, ctx):
  self.isrunning = True
  await ctx.send("Starting loop.")

  while self.isrunning:
    # do stuff here
    await asyncio.sleep(1)

@bot.command()
async def stoploop(self, ctx):
  self.isrunning = False

  await ctx.send("Stopped loop.")

只需在您的实例中定义一个变量(在我的示例self.isrunning中)并进行检查即可。

答案 1 :(得分:0)

但是,如果您多次运行该命令或在其他服务器上运行,则一个stop命令将全部停止。没有办法只用一个命令停止一个循环