在JSON文件Discord,py中使用Emojis解码错误

2024-05-18 18:57:21 发布

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

我实现了一个反应角色系统,出于某种奇怪的原因,机器人可以检索解码后的表情符号(使用emojis.decode(emoji)进行解码),有时会出现按键错误

这是JSON文件:

{"663841143833886731": {"758244108757630996": {"\ud83c\uddf4": {"role": 758248481004978198}, "\ud83c\uddf2": {"role": 663836646613188619}, "\ud83c\uddf7": {"role": 758248684650758144}, "\ud83c\uddf0": {"role": 663836435878772737}}, "758245355028217866": {"emoji": "\ud83c\udde7", "role": 695609798137479249, "\ud83c\uddf9": {"role": 663836545484062722}, "\ud83c\udde9": {"role": 663836591483256842}}, "758246129187422248": {"emoji": "\ud83c\udde9", "role": 745956069720981504, "\ud83c\udde7": {"role": 745956316912287834}, "\ud83c\uddf5": {"role": 745956478254317578}, "\ud83c\uddf8": {"role": 745956546441379903}, "\ud83c\uddea": {"role": 745956631241687122}}, "758247160978079745": {"emoji": "\ud83c\udde9", "role": 758262018456289321}}}

以下是反应添加的侦听器:

@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
    if self.check_if_bot(payload.member):
        with open(os.path.join(self.DATA_PATH, "reactionrole.json"), "r") as temp:
            role_assigment = json.load(temp)

        guild = self.bot.get_guild(payload.guild_id)
        user = guild.get_member(payload.user_id)
        msg_id = payload.message_id
        emoji = str(emojis.decode(str(payload.emoji)))
        print("Decoded: ", emoji)

        if self.allowed_channel(role_assigment, payload.channel_id):
            role_to_assign = guild.get_role(role_assigment[str(payload.channel_id)][str(msg_id)][emoji]["role"])
            await user.add_roles(role_to_assign)
            await user.send("Dir wurde die Role {} hinzugefügt!".format(role_to_assign.name))
    

Tags: toselfidgetifchannelrolepayload

热门问题