on_message_edit自身循环discord.py重写v1.3.4

2024-03-28 16:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码-

@client.event
async def on_message_edit(before, after):
    channel = client.get_channel(724859369732177953)
    guild = client.get_guild(716816535309516840)
    embed = discord.Embed(title=f"{guild.name}", description=f"**{before.author.mention} edited a message in - {before.channel.mention}**\n**Old -**\n ```\n {before.content}\n```\n**New -**\n```\n{after.content}\n```", color=0x40cc88,)
    embed.set_thumbnail(url=guild.icon_url)
    embed.set_footer(text=guild.name)
    await channel.send(embed=embed)
    return

当我编辑一条消息时,bot发送的第一个嵌入是正确的,但它会一次又一次地发送嵌入,直到我退出该过程,以下是屏幕截图-

screenshot

非常感谢您的帮助


Tags: nameclienteventurl密码messagegetchannel
1条回答
网友
1楼 · 发布于 2024-03-28 16:50:16

在事件开始时,检查它是否由bot触发。您可以这样做:

@client.event
async def on_message_edit(before, after):
    if before.author == client.user:
        return
    channel = client.get_channel(724859369732177953)
    ...

如果bot编辑了一条消息,将返回该消息。否则,它将按预期执行代码

相关问题 更多 >