向消息添加反应。 Discord.py 重写

Posted

技术标签:

【中文标题】向消息添加反应。 Discord.py 重写【英文标题】:Adding reactions to a message. Discord.py rewrite 【发布时间】:2019-09-06 03:52:05 【问题描述】:

我正在尝试使用自定义表情符号添加对消息的反应,由于某种原因,我在网上找不到太多关于此的内容,并且我花了最后 30m 试图找出不同的方法。到目前为止没有任何效果。

这是在齿轮里面。

第一种方法

accept_decline = await ctx.send("Test")
cross = self.bot.get_emoji(558322190060093441)
checkM = self.bot.get_emoji(558322116685070378)
await accept_decline.add_reaction(checkM)
await accept_decline.add_reaction(cross)

另一种方法

accept_decline = await ctx.send("Test")
await self.bot.add_reaction(accept_decline, emoji="<:greenCheckmark:558322116685070378>")
await self.bot.add_reaction(accept_decline, emoji="<:redCross:423541694600970243>")

似乎什么都没有发生,控制台中也没有出现任何错误。

【问题讨论】:

【参考方案1】:

最好的方法就是给你的表情符号的名称/str/unicode符号:

'\N竖起大拇指'

'\U0001F44D'

'?'

然后创建一个包含它的变量:

emoji = '\NTHUMBS UP SIGN'

然后您可以发送您的消息并添加反应:

message = await ctx.send('test')
await message.add_reaction(emoji)

最后,你应该得到:

@client.command()
async def test(ctx):
    message = await ctx.send('test')
    emoji = '\NTHUMBS UP SIGN'
    await message.add_reaction(emoji)

查看常见问题解答: https://discordpy.readthedocs.io/en/stable/faq.html#how-can-i-add-a-reaction-to-a-message

【讨论】:

【参考方案2】:

第二种方法是异步的。 你用的是齿轮吗?如果不转self.botbot 另外,您确定机器人在服务器中,它试图获取的表情符号在其中吗? 你可能有一个错误的 ID,下面的这个应该可以正常工作,你没有告诉我们你得到的错误,所以如果你收到错误说 self is not defined 那么你也很难找到问题所在不使用 cog,应该将 self.bot 更改为 bot,因为下面的脚本对我来说效果很好:

accept_decline = await ctx.send("Test")
cross = self.bot.get_emoji(558322190060093441)
checkM = self.bot.get_emoji(558322116685070378)
await accept_decline.add_reaction(checkM)
await accept_decline.add_reaction(cross)

【讨论】:

【参考方案3】:

从表情中删除&lt;&gt;await self.bot.add_reaction(accept_decline, emoji="redCross:423541694600970243") 应该可以工作。

【讨论】:

以上是关于向消息添加反应。 Discord.py 重写的主要内容,如果未能解决你的问题,请参考以下文章

Discord bot 添加对消息 discord.py 的反应(无自定义表情符号)

如何在没有 id 的 discord.py 中添加对消息的反应

Discord.py bot 在添加反应时将消息重新发送到另一个频道中断

(discord.py) 向不和谐机器人发布的嵌入添加反应

Python 3.8.1 Discord.py 重写反应

Discord.py(重写)静音命令总是返回相同的响应