on_message() 和@bot.command 问题
问题描述
当我的代码中有 on_message() 时,它会停止所有其他
@bot.command
命令的工作.我尝试过 await bot.process_commands(message)
,但这也不起作用.这是我的代码:
When I have on_message()
in my code, it stops every other @bot.command
commands from working. I've tried to await bot.process_commands(message)
, but that doesn't work either. Here is my code that I have:
推荐答案
你必须将
.await bot.process_commands(message)
放在 if
语句范围之外,<无论消息是否以/lockdown"开头,都应运行code>process_command
You have to place await bot.process_commands(message)
outside of the if
statement scope, process_command
should be run regardless if the message startswith "/lockdown".
顺便说一句,@commands.has_role(...)
不能应用于 on_message
.尽管没有任何错误(因为检查到位),但 has_role
实际上不会像您预期的那样工作.
By the way, @commands.has_role(...)
cannot be applied to on_message
. Although there aren't any errors (because there’s checking in place), has_role
wouldn't actually work as you would've expected.
@has_role
装饰器的替代方案是:
An alternative to the @has_role
decorator would be:
这篇关于on_message() 和@bot.command 问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!