Discord.py @ bot.event

时间:2020-05-28 23:36:41

标签: python discord discord.py

所以我有一个同时使用@ 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)

1 个答案:

答案 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()事件,则还应该调用此协程。


参考: