向消息添加反应。 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.bot
到bot
另外,您确定机器人在服务器中,它试图获取的表情符号在其中吗?
你可能有一个错误的 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】:从表情中删除<>
。await self.bot.add_reaction(accept_decline, emoji="redCross:423541694600970243")
应该可以工作。
【讨论】:
以上是关于向消息添加反应。 Discord.py 重写的主要内容,如果未能解决你的问题,请参考以下文章
Discord bot 添加对消息 discord.py 的反应(无自定义表情符号)
如何在没有 id 的 discord.py 中添加对消息的反应