Ainsi, lorsque quelqu'un tape la commande !test
dans le canal chatroom, il imprime les chaînes ci-dessous dans le canal de discussion. Cependant, je veux que la commande à utiliser une seule fois à la fois, donc je veux verrouiller la commande jusqu'à ce qu'il soit terminé:Je ne sais pas pourquoi `asyncio.Lock` ne fonctionne pas
import discord, asyncio, time
client = discord.Client()
@client.event
async def on_message(message):
lock = Lock() # define Lock
if message.content.lower().startswith("!test") and not lock.locked():
lock.acquire() # Lock the !test command so it can't be used now
await client.send_message(message.channel,'test1rgews')
await asyncio.sleep(1)
await client.send_message(message.channel,'test2thewf')
await asyncio.sleep(1)
await client.send_message(message.channel,'test3rhtvw')
await asyncio.sleep(1)
await client.send_message(message.channel,'test4trjyr')
await asyncio.sleep(1)
await client.send_message(message.channel,'test5dmuye')
await asyncio.sleep(10)
lock.release() # Unlock the !test command now
client.run('clienttokenhere')
Mais je reçois une erreur qui dit NameError: name 'Lock' is not defined
, même si je ne définissaient comme lock = Lock()
.
Veuillez ne pas vandaliser vos messages. Une fois que vous avez publié une question, vous avez concédé sous licence le contenu à la communauté Stack Overflow en général (sous la licence CC-by-SA). Si vous souhaitez dissocier ce message de votre compte, voir [Quel est le chemin approprié pour une demande de dissociation?] (Http://meta.stackoverflow.com/questions/323395/what-is-the-proper-route- for-a-dissociation-request). – FelixSFD