python - 我的带有聊天过滤器事件的 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)
这是问题所在的聊天过滤器代码。我认为由于这个过滤器,我所有的代码都编译了三遍
解决方案
猜测这是这个问题的重复
由于您有 2 个on_message()
函数,因此只会处理第二个函数。你应该删除一个。
您发出多条消息是因为您正在循环中处理您的await bot.process_commands(message)
命令。for
基于有 3 个坏词,您有 3 条消息。
尝试取消缩进 yourawait bot.process_commands(message)
以与您的for word in filter
.
推荐阅读
- javascript - Jest: How to mock one specific method of an already-mocked class
- pytorch - Pytorch 闪电:“CIFAR10DataModule”对象没有属性“train_loader”
- embedded - Jump to another application
- android - firebase storage how can I save the images in the ram To prevent the image from loading when switching between fragments or activities
- python - Loop Through Pandas Dataframe and split into multiple dataframes based on unique column values
- python - 使用 json 文件中的特定键、值对更新 python 字典
- c - When stack stores data in LIFO
- file-upload - How to sync files programmatically to Azure storage in a way like Dropbox?
- r - Running a Simulation in NLME
- plot - 为什么 GR 不在 Julia 中显示轴标签