所以我有一个同时使用@ bot.event和@ bot.command的脚本。问题是当我等待@ bot.event时,@ bot.command将无法运行。
@bot.event
async def on_ready():
print("Bot Is Ready And Online!")
async def react(message):
if message.content == "Meeting":
await message.add_reaction("?")
@bot.command()
async def info(ctx):
await ctx.send("Hello, thanks for testing out our bot. ~ techNOlogics")
@bot.command(pass_context=True)
async def meet(ctx,time):
if ctx.message.author.name == "techNOlogics":
await ctx.channel.purge(limit=1)
await ctx.send("**Meeting at " + time + " today!** React if you read.")
@bot.event ##THIS ONE HOLDS UP THE WHOLE SCRIPT
async def on_message(message):
await react(message)
答案 0 :(得分:0)
将on_message
事件与命令混合使用时,您将要添加await bot.process_commands(message)
,如下所示:
@bot.event
async def on_message(message):
await bot.process_commands(message)
# rest of code
如文档所述:
此功能处理已注册到机器人和其他组的命令。没有协程,将不会触发任何命令。
如果您选择覆盖on_message()事件,则还应该调用此协程。
参考: