我正在使用pycord,并试图让我的不和谐机器人与特定用户一起查看它的dm消息,以确定它是否已经向该用户发送了特定的消息。这个是可能的吗?
我已经找到了很多如何让不和谐的机器人响应"on_message()“的例子,但这不是我想要的。我希望获得以前发送的消息的历史记录(如果没有dm历史记录,则没有)。这个是可能的吗?
另一个用例是:我希望机器人在用户添加消息后编辑发送给DM中的消息。当用户添加一个反应时,我就可以触发bot。
@commands.Cog.listener()
async def on_raw_reaction_add(self, ctx: discord.RawReactionActionEvent):但是这个函数中的ctx只包含一个channel_id和message_id,所以我需要用channel_id获取DiscordChannel,然后用message_id获取DiscordMesage。
这似乎是pycord缺少的一个特性:
发布于 2022-03-10 00:07:30
好的。所以在读了“医生”之后。我想出了一种你能做到的办法。
ctx : RawReactionActionEvent具有属性user_id。有了这个,您就可以使用user = await self.client.fetch_user(user_id)获取用户。对于user对象,有一个属性dm_channel。这样,它将返回DMChannel。如果没有与用户一起创建dm,则返回None。然后你可以用消息ID获取消息,我想这就是你的意思。如果不是,我也许能找到另一种方式。
https://docs.pycord.dev/en/master/api.html#discord.RawReactionActionEvent
https://stackoverflow.com/questions/71403549
复制相似问题