#python #python-3.x #discord.py
#python #python-3.x #discord.py
Вопрос:
Как я могу остановить эту команду discord bot без перезапуска бота?
@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)
Ответ №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
Также две вещи:
- Вы можете просто
str.join(list)
вместо этого странного цикла for, который вы создали - используйте
asyncio.sleep
вместоtime.sleep
, чтобы ваш код не блокировался