如何在不重新启动机器人的情况下停止此discord机器人命令



如何在不重新启动机器人的情况下停止此discordbot命令?

@bot.command()
async def spam(ctx, *args):
response = ""
for arg in args:
response = response + " " + arg
while True:
await ctx.channel.send(response)
time.sleep(1)

您可以简单地使用变量

bot.some_var = True
while bot.some_var:
await ctx.send(response)
if 'some condition met':
loop = False

如果你想停止命令中的循环:

bot.some_var = True
@bot.command()
async def spam(ctx, *args):
response = ' '.join(args)
while bot.some_var:
await ctx.send(response)
await asyncio.sleep(1)

@bot.command()
async def stop(ctx):
bot.some_var = False

还有两件事:

  1. 您可以简单地str.join(list),而不是您制作的那个奇怪的for循环
  2. 使用asyncio.sleep而不是time.sleep,这样代码就不会被阻止

相关内容

  • 没有找到相关文章

最新更新