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