如何使用discord.py从Discord上的DM通道读取反应

时间:2020-07-11 23:45:47

标签: python discord.py

在编写不和谐的bot时,我意识到我需要阅读该bot传达给不同用户的反应。

代码:

@client.event
async def on_reaction_add(reaction, user):
    channel = reaction.message.channel
    await channel.send('{} has added {} to the message: {}'.format(user.name, reaction.emoji, reaction.message.content))

基本上是从机器人所在的任何渠道(例如,公会)读取一条消息,而不是DM渠道。有解决办法吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

我刚刚才意识到这一点,所以我将其添加为答案。 您只需使用isinstance来检查通道类型,因为dpy对于所有通道都具有不同的内部类。

@bot.event
async def on_reaction_add(reaction, user):
    if not isinstance(reaction.message.channel, discord.DMChannel):
        # Not a dm
        return

    print("Hey this should be a dm")

该代码只能在dms中运行。 或者,您可以删除not并将dm代码放在if语句中