我的带有聊天过滤器事件的discord.py机器人发送了2条或更多消息,而不是1条

时间:2020-05-02 16:39:44

标签: python bots discord

不久前在我的不和谐机器人聊天过滤器中添加了它,它删除了我不想看到的消息。但是我对此有一个问题。在这个新事件之前,我的机器人发送了命令$ hello 1 message(hello ,{me}),但他使用此聊天过滤器发送了2个或更多问题(帖子数=禁止的单词数)。您能以此为我提供帮助吗?

enter image description here

@Bot.event
async def on_message( message ):
    filter = ['!leave', '!play','!skip']
    for word in filter:

        if word in message.content:
            print('%s bad word' % (message.author.id))
            await message.channel.purge(limit=1)
            await message.author.send('Просьба писать команды для бота в #music')
        await Bot.process_commands(message)

这是问题所在的聊天过滤器代码。 我认为由于有了这个过滤器,我所有的代码都被编译了三次

1 个答案:

答案 0 :(得分:0)

猜测这是此question

的副本

由于您有2个on_message()函数,因此仅第二个函数会被处理。您应该删除一个。

出现多条消息是因为您正在await bot.process_commands(message)循环中处理for命令。基于3个坏词,您会收到3条消息。

尝试使await bot.process_commands(message)缩进缩进,使其与for word in filter保持一致。