首页 > 解决方案 > 我的带有聊天过滤器事件的 discord.py 机器人发送 2 条或更多消息而不是 1 条

问题描述

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

在此处输入图像描述

@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)

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

标签: pythonbotsdiscord

解决方案


猜测这是这个问题的重复

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

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

尝试取消缩进 yourawait bot.process_commands(message)以与您的for word in filter.


推荐阅读