discord.py on_message事件错误

时间:2018-07-08 14:53:09

标签: python discord.py

我有两个on_messages事件:

问题在于,当两个代码都位于同一代码中时,只有处于较低位置的代码才起作用。当我删除它时,另一个起作用,而相反。两者都以await client.process_commands(message)结尾。

@client.event
async def on_message(message):
    contents = message.content.split(" ") #contents is a list type
    for word in contents:
        if word.upper() in chat_filter:
            if not message.author.id in bypass_list:
                await client.delete_message(message)
                await client.send_message(message.channel, "Hey! You are not allowed to use that word here!")
                await client.process_commands(message)


@client.event
async def on_message(message):
 if message.content.startswith('ping'):
   await client.send_message(message.channel, 'pong')
   await client.process_commands(message)

1 个答案:

答案 0 :(得分:1)

您将在两次调用on_message(message)时重新定义def函数。这将覆盖上面的async def on_message(message)

您应该做的是将两者合并为一个函数。

我强烈建议您查看discord.py examples,它们有一个预制的基本bot,它已经内置了命令解析器。