Discord.py“on_message_edit”方法,用于在 Discord 机器人离线/重新启动后发送的消息

问题描述 投票:0回答:1

我正在尝试创建一个 Discord 机器人(使用 Discord.py),它可以从包含可编辑嵌入的消息中提取数据,该嵌入会接收更新。如果发送带有嵌入的消息时机器人已存在于服务器中并且在线,则机器人可以正常运行。但是,如果机器人重新启动或失去与服务器的连接,它将无法正常工作。

我想知道discord.py 机器人是否可以在机器人加入服务器之前或机器人离线时利用 on_message_edit 方法将消息发送到频道。

我已经使用 Channel.history() 将机器人定向到特定消息,但 on_message_edit 似乎仍然不起作用。根据我之前看到的一些问题,这是因为消息没有加载到机器人的缓存中,但是对文档的搜索似乎没有办法强制旧消息进入缓存,但感觉应该是可能的.

简而言之,我想我想要类似 TextChannel.fetch_message(id) 的东西,但是根据我的经验,这不会将消息放入内部缓存中。

预先感谢您提供的任何帮助。

discord.py
1个回答
0
投票

为此,您可能需要使用

on_raw_message_edit
而不是
on_message_edit
。无论消息是否在缓存中,都会调用
on_raw_message_edit

请记住,无论消息是否在缓存中,都会调用此函数,因此您可能不需要同时使用

on_message_edit
on_raw_message_edit
。如果在缓存中找到消息,则来自
on_raw_message_edit
的有效负载将具有
cached_message
属性。请务必仔细阅读文档。

© www.soinside.com 2019 - 2024. All rights reserved.