如何对刚发送的邮件做出反应

时间:2020-05-13 00:13:22

标签: python python-3.x discord discord.py-rewrite

我的一个Cog文件中有一个任务功能,如下所示。这不是命令,只是每30秒作为后台任务运行一次。我想对刚刚发送的邮件添加反应。我该怎么办?

async def _say_hello(self, channelId):
    channel = self.client.get_channel(channelId)
    await channel.send("Hi everyone")
    await channel.add_reaction(':heart:') # This part gives me an error

1 个答案:

答案 0 :(得分:1)

发送消息时,可以将其放入变量中并将其用作discord.Message对象,如下所示:

async def _say_hello(self, channelId):
    channel = self.client.get_channel(channelId)
    msg = await channel.send("Hi everyone")
    await msg.add_reaction('❤') # heart's unicode is \u2764

添加反应时,您想使用实际的表情符号(如果您的编辑器支持的话)或unicode,您可以从this网站上获取。

自定义表情符号

async def _say_hello(self, channelId):
    channel = self.client.get_channel(channelId)
    msg = await channel.send("Hi everyone")
    emoji = discord.utils.get(ctx.guild.emojis, name="emojiname")
    # emoji = discord.utils.get(ctx.guild.emojis, id=112233445566778899) alternative method
    await msg.add_reaction(emoji)

discord.utils usage

obj = discord.utils.get(iter, attr="something")

# examples
member = discord.utils.get(ctx.guild.members, id=112233445566778899)
channel = discord.utils.get(ctx.guild.text_channels, name="general")

查找特定对象时,可以使用该对象具有的任何属性。如果需要任何提示,请参考docs