我有两个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)
答案 0 :(得分:1)
您将在两次调用on_message(message)
时重新定义def
函数。这将覆盖上面的async def on_message(message)
。
您应该做的是将两者合并为一个函数。
我强烈建议您查看discord.py examples,它们有一个预制的基本bot,它已经内置了命令解析器。