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

2024-05-16 19:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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."))

这是代码的一部分,我被绊住了。Bot要求用户使用表情符号做出反应,然后Bot应该尝试查找该表情符号(表情符号可以是默认的或自定义的),如果Bot能够找到表情符号,它将存储id或类似表情符号的内容,如果找不到,它将返回说我看不见

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


Tags: tosendthatusecheckbotembedawait
2条回答

好了,伙计们,idk如果我不能很好地解释这个问题,或者只是你, 这就是我的工作

        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什么都不是,它只是检查作者是否是启动安装程序的用户

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

相关问题 更多 >