【问题标题】:Discord bot check if a bot deleted a messageDiscord 机器人检查机器人是否删除了消息
【发布时间】:2019-04-24 09:37:00
【问题描述】:

我想让我的不和谐机器人仅在用户删除消息(而不是机器人)时才发送回复消息。我正在使用message.author.bot 查找,但删除消息似乎不一样。到目前为止,我有这个:

@client.event
async def on_message_delete(message):
  if message.author.bot:
    return
  await client.send_message(message.channel, "<@{}>'s message was deleted".format(message.author.id))

【问题讨论】:

  • 根据您的措辞,我不确定您是要排除被机器人删除的消息还是被机器人删除的消息。你能澄清一下你的意图吗?
  • this answer。根据您的版本,您可能无法看到谁删除了消息。
  • @PatrickHaugh 谢谢。似乎不和谐 API 没有显示谁删除了该消息。也许这个问题是无解的。
  • 你能做的最好的就是授予机器人检查审核日志的权限,然后在其中查找消息的删除(如该答案所示)

标签: python discord discord.py


【解决方案1】:

也许这就是你问题的答案

@client.event
async def on_message_delete(message, member):
    if message.author.id == client.user.id): #Checks the ID, if AuthorID = BotID, return. Else, continue.
        author : message.author #Defines the message author
        content : message.content #Defines the message content
        channel : message.channel #Defines the message channel
        logchannel = discord.utils.get(member.guild.channels, name='<XYZ>') #Defines the logs channel
        await logchannel.send(channel, '{}: {}'.format(author, content)) #Send the message.

【讨论】:

  • 您好,欢迎来到 stackoverflow,感谢您的回答。您能否简单地解释一下您解决了什么问题以及您是如何解决的,而不是仅仅发布一段代码?这将有助于将来发现此问题的人更好地了解该问题以及如何处理它。
  • author : message.author 是一个注解,表示author 的类型为message.author。你可能想要author = message.author
猜你喜欢
  • 2020-08-24
  • 2019-02-20
  • 2021-01-24
  • 2021-06-26
  • 2019-09-16
  • 2018-06-03
  • 2018-09-14
  • 2020-07-04
  • 2021-08-19
相关资源
最近更新 更多