【发布时间】:2021-04-24 04:08:34
【问题描述】:
我正在尝试解决一个问题,我的 discord 机器人(迷你游戏)中有许多命令和事件,我希望用户一次只能使用一个命令,所以如果有一个迷你游戏已经在运行,其他的不能使用命令或事件。因此,我创建了on_command 变量,并且在每个命令和事件的开头,变量都变为 1,在每个命令和事件的结尾,变量又变为 0。因此,如果有人尝试使用某些命令或事件并且变量为 1,机器人只是向他发送他现在不能使用该命令。但由于某种原因,它不起作用,我收到下一个错误:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: UnboundLocalError: local variable 'on_command' referenced before assignment
我的代码:
on_command = 0
@bot.command()
@commands.cooldown(1, 180.0, commands.BucketType.guild)
async def question(msg):
if msg.channel.id != channel:
return
if on_command == 1:
await msg.send("Another command or event is running")
return
on_command = 1
....
....
....
on_command = 0
【问题讨论】:
标签: python pycharm discord.py discord.py-rewrite