【发布时间】:2017-10-30 05:05:13
【问题描述】:
所以它的作用是每当有人在聊天室频道中键入命令!test 时,它就会在聊天频道中打印出适当的以下字符串。但是,我希望命令一次只使用一次,所以我想锁定命令直到它完成:
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')
但我收到一条错误消息,显示为 NameError: name 'Lock' is not defined,尽管我确实将其定义为 lock = Lock()。
【问题讨论】:
-
请不要破坏您的帖子。发布问题后,您已将内容授权给整个 Stack Overflow 社区(根据 CC-by-SA 许可)。如果您想取消此帖子与您帐户的关联,请参阅What is the proper route for a disassociation request?。
标签: python python-3.x locking discord discord.py