我希望我的 Discord 机器人在有人写“abc”时回答“abc def”,但它一直在发送垃圾邮件“abc def”

时间:2021-08-01 14:15:00

标签: python discord discord.py bots

我正在使用 Python 编写一个 Discord 机器人,这是命令之一。

我希望机器人在我每次写“abc”时都回答“abc def”,但它不断发送垃圾邮件“abc def”。

@commands.Cog.listener()
async def on_message(self, message):
        if "abc" in message.content.lower():
            await message.channel.send('abc def')

1 个答案:

答案 0 :(得分:1)

这是因为你发送的消息包含你在 if 语句中比较的文本,这导致递归:监听器被调用,发送一条消息,然后因为它自己的消息而再次被调用,在turn 让它发送消息,然后再次调用它,依此类推。

您可以通过检查 message 的发件人是否等于机器人用户并仅在不等于的情况下发送消息来解决此问题。