-2

我正在重新发送我的 Discord 服务器成员删除或编辑的消息。也就是说,每当他们删除一条消息时,我都会用机器人重新发送它。每当他们编辑消息时,我都会重新发送 before.content。

为此,我使用以下代码:

@bot.event
async def on_message_delete(message):
  if message.author.id == id:
    edited = discord.Embed(title=str(message.author) + " sent:",description=message.content)
    await message.channel.send(embed=edited)

@bot.event
async def on_message_edit(before, after):
  if before.author.id == id:
    edited = discord.Embed(title= str(before.author) + " edited:",description=before.content)
    await before.channel.send(embed=edited)

我的问题是:如果他们删除了一条消息,discord.py 也会将删除识别为正在编辑。因此,机器人会重新发送消息两次。

例如,如果他们发送“cat”然后删除该消息,机器人会响应两次:

User deleted message "cat". User edited message "cat".

为了阻止这种情况,在我的on_message_edit事件中,我想首先通过 if-then-else 块检查消息是否被编辑或是否被删除。

就像是:if before.content has been deleted

有没有办法做到这一点?

4

0 回答 0