Реализация ролевых реакций с использованием собственных смайликов раздора вместо пользовательских смайликов раздора (python) - PullRequest
0 голосов
/ 30 марта 2020

Я работал над кодированием моего собственного бота разногласий в python, и я пытался реализовать реакцию на определенные сообщения c определенным образом, вы дадите вам определенную роль. Я понял, как заставить это работать с обычными смайликами разногласий, но я изо всех сил пытаюсь заставить его работать с родными смайликами разногласий. Я знаю, что мне следует как-то использовать юникод эмодзи, но я просто не могу понять,

#roles for hemisphere and native fruit
#first part - emoji id, second part - role id
#CUSTOM EMOJIS
hemisphere = {693662576936222811:[693663054788821092],
693662585953714256:[693663114914168913]
            }
#NATIVE DISCORD EMOJIS
native_fruit = {693711698082660427:[693711520953270293],
693711724024430633:[693711530197516289],
693711811312353330:[693711572312391721],
693711739744813056:[693711538623742042],
693711786582474752:[693711553257799720]
                }
hemisphere_id=693914783979667506
native_fruit_id=693914786773205103

#add roles
@bot.event
async def on_raw_reaction_add(reaction):
    if reaction.user_id==bot.user.id:
        return
    if not ((reaction.emoji.id in hemisphere) or (reaction.emoji.id in native_fruit)):
        return


    guild = await bot.fetch_guild(reaction.guild_id)
    user = await guild.fetch_member(reaction.user_id)

#CUSTOM EMOJIS
    if reaction.message_id == hemisphere_id:
        emojiid = hemisphere.get(reaction.emoji.id)
        id =emojiid[0]
        await user.add_roles(guild.get_role(id))
#NATIVE DISCORD EMOJIS
    elif reaction.message_id == native_fruit_id:
        emojiid = native_fruit.get(reaction.emoji.id)
        id = emojiid[0]
        await user.add_roles(guild.get_role(id))        
    else:
        return

Я новичок в python в общем, поэтому у меня возникают проблемы с выяснением, как двигаться вперед

1 Ответ

0 голосов
/ 30 марта 2020

Для нативных смайликов вы должны вставить иконку смайлика, а не идентификатор Вы можете получить его, набрав \:emoiji_id: в разногласиях и заменив emoji_id идентификатором смайликов. Например, cucumber является нативным смайликом для разногласий, чтобы использовать его в своем коде, вы должны набрать \:cucumber: в разногласии, и он вернет ?. Затем вы можете скопировать и вставить your в свой код вместо native_fruit_id. Вы также можете go на https://getemoji.com/ и скопировать и вставить оттуда. Надеюсь, это поможет!

...