gpt4 book ai didi

python - 为什么我的 on_message 在我的命令后被调用?

转载 作者:行者123 更新时间:2023-12-04 03:55:21 26 4
gpt4 key购买 nike

我的代码运行正常。只有一个问题,即在调用任何命令后,我的 on_message 会立即被调用(这会导致一些副作用)

async def delete_on_swear(message):
if not message:
return
db = sqlite3.connect('main.sqlite')
cursor = db.cursor()
try:
guild_id = message.guild.id
except AttributeError:
return
cursor.execute(f'SELECT word FROM badwords WHERE guild_id={guild_id}')
swears = [swear[0] for swear in cursor.fetchall()]
if not swears:
return
if bot.user == message.author:
return
for swearword in swears:
if not message.channel.is_nsfw() and is_substring(message.content.lower(), swearword):
await message.delete()
await message.author.create_dm()
await message.author.dm_channel.send(
f'Hi {message.author}, you sent a message containing the following word: {swearword}'
)
return```

最佳答案

on_message 在机器人可以查看的任何 channel 中发送任何消息后运行。在您的 on_message 顶部,放置以下代码以防止机器人对自己的消息采取行动:

if message.author == bot.user:
return

关于python - 为什么我的 on_message 在我的命令后被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63999733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com