繁体   English   中英

如何在discord.py中获得反应表情符号?

[英]How to get reaction Emoji in discord.py?

我正在尝试使用 MongoDb 制作多行会反应角色命令,

        await ctx.send(embed=gen_embed("React to this message with reaction you want to use.\n**Don't use Nitro Emoji that is not in this server.**"))
        reaction,user = await self.bot.wait_for("reaction_add",timeout=30,check=reaction_check)
        try:
            #emoji = await ctx.guild.get_emoji(reaction.Emoji)
        except:
            return await ctx.send(embed=gen_embed("<:xmark:771032946915934298> | I can't see that emoji."))

这是代码的一部分,我坚持。 机器人要求用户对表情符号做出反应,然后机器人应该尝试找到该表情符号(表情符号可以是默认的或自定义的),如果机器人可以找到表情符号,它将存储 id 或类似表情符号的内容,如果可以的话然后它会返回说我看不到......

现在的问题是如何检查机器人是否可以看到该表情符号以及该事件究竟要存储什么。 我尝试阅读文档,但文档似乎不是为初学者编写的。

使用 str(reaction.emoji) == '👍' 代替 get_emoji。
希望这可以帮助
您可以在https://discordpy.readthedocs.io/en/latest/api.html#emoji上找到有关此的更多信息这仅检查 1 个表情符号

好的,伙计们,如果我无法正确解释这个问题,或者只是你,这对我有用。

        await ctx.send(embed=gen_embed("React to this message with reaction you want to use.\n**Don't use Nitro Emoji that is not in this server.**"))
        reaction,user = await self.bot.wait_for("reaction_add",timeout=30,check=reaction_check)
        if cancel_check(role) is True:
            return await ctx.send(embed=gen_embed('<:xmark:771032946915934298> | Cancelled!'))
        elif cancel_check(role) is False:
            if isinstance(reaction.emoji,str):
                await msg.add_reaction(str(reaction.emoji))
            else:
                try:
                    emoji = await ctx.guild.fetch_emoji(reaction.emoji.id)    
                    await msg.add_reaction(emoji) 
                except:
                    return await ctx.send(embed=gen_embed("<:xmark:771032946915934298> | I can't see that emoji."))

我相信会有更好的方法来做到这一点,但这就是我现在得到的。 如果我找到更好的方法,我会编辑我的答案。 此外reaction_check是什么,它只是检查,如果作者是谁启动安装程序的用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM