J'ai donc quelque chose comme ceci:Comment arrêter une boucle infinie avec le même déclencheur qui la démarre?
import discord, asyncio
client = discord.Client()
@client.event
async def on_message(message):
if message.content.lower().startswith("!test"):
await client.delete_message(message)
test1 = await client.send_message(message.channel, "%s test1" % (message.author.mention))
await asyncio.sleep(1)
while True:
#newtest = await client.wait_for_message()
#if newtest.content.lower().startswith("!test"):
#return 0
#else:
test2 = await client.edit_message(test1, "%s test2" % (message.author.mention))
await asyncio.sleep(1)
await client.edit_message(test2, "%s test1" % (message.author.mention))
await asyncio.sleep(1)
client.run('ClientTokenHere')
Ce qu'il fait est, si quelqu'un tape !test
dans un canal de chat, le script supprimer ce message !test
, puis envoyer un message dans le chat qui dit de la personne nom suivi du texte test1
. Ensuite, le script va éditer ce message pour dire test2
après une seconde, puis il va éditer que même message pour dire test1
, puis à test2
, etc., etc. pour toujours.
Cependant, je veux faire en sorte que si un autre utilisateur tape la même commande !test
, le script s'arrêtera immédiatement pour l'utilisateur pour lequel il était précédemment activé, et commence à le faire pour l'utilisateur le plus récent qui a émis la commande. Les lignes que j'ai commentées sont mes tentatives pour essayer d'y parvenir. Comment puis-je faire cela?