python - Cogs 命令消息发送两次
问题描述
我昨天切换到 cogs,所以我的代码看起来更干净。从那时起,所有命令都被破坏了。如果您发送 t!profile,它将发送两次消息。我发现问题与我创建的过滤器有关。
if getImmunityValue == 0:
for word in getWord:
if getMutedValue == 0:
message.content = message.content.lower()
if message.content.count(''.join(word)) > 0:
id = message.author.id
curs.execute('SELECT channelID FROM getchannel')
getChannelID = curs.fetchone()[0]
channel = self.client.get_channel(getChannelID)
curs.execute('SELECT strike FROM user WHERE userID = (%s)', (id,))
getstrike = curs.fetchone()[0]
curs.execute(f'UPDATE user SET strike = {getstrike + 1} WHERE userID = {id}')
db.commit()
await message.delete()
await message.channel.send(f'{message.author.mention} Bitte benutzte kein Schimpfwoerter. Falls du weiter machen solltest, wirst du gebannt oder gemutet!')
Embed = discord.Embed(
title=f'{getstrike}x strike(s) from {message.author}',
color=discord.Colour.red(),
timestamp=self.datetime.utcnow()
)
Embed.add_field(name='Blacklist Wort:', value=message.content, inline=False)
Embed.add_field(name='Channel-ID:', value=message.channel.id, inline=False)
Embed.add_field(name='Channel:', value=message.channel, inline=False)
await channel.send(embed=Embed)
await self.client.process_commands(message)
解决方案
所以问题是await self.client.process_commands(message)
我不知道为什么,但这解决了它。
推荐阅读
- javascript - 处理异步 foreach 循环然后分派到 redux
- javascript - 需要帮助理解“elementsFromPoint(x,y)”
- xml - 减少数据大小
- r - 具有 POSIXct 格式的时间列的内置数据框
- django - Angular 7 formData +文件+嵌套对象
- javascript - react-draggable 不适用于自定义组件
- node.js - Lambda NodeJS function not firing when executed from website but works fine in console
- javascript - 同步调用 JavaScript 类方法
- android - Permission denied running shell script from Android app
- python - Bumpversion: reset any part of the version