Discord.py реакции на эмодзи по умолчанию

#discord.py

#discord.py

Вопрос:

Этот код работает для добавления ролей с помощью реакций, но я могу использовать только пользовательские эмоции для реакций, payload.emoji.name поэтому, когда я устанавливаю его равным electric_plug, он не работает. Есть ли какой-нибудь способ обойти это?

 async def on_raw_reaction_add(payload):
    message_id = payload.message_id
    if message_id == 799030902302834698:
      guild_id = payload.guild_id
      guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds) 
    if payload.emoji.name == 'electric_plug':
      role = discord.utils.get(guild.roles, name='Electrical')
      if role is not None:
        member = payload.member
        if member is not None:
          await member.add_roles(role)
        else:
          print('no member')
      else:
        print('no role')
 

Ответ №1:

Замените имя «electric_plug» для эмодзи в юникоде. Эмодзи в Юникоде выглядят следующим образом: 👍

Вы можете получить эмодзи в Юникоде двумя способами.

Во-первых, вы можете просто просмотреть emojипедию и выполнить поиск нужного смайлика. После этого просто скопируйте тот, который они предоставляют (поле должно выглядеть так):

Скриншот раздела quot;Копировать и вставлятьquot; в emojипедии

Второй вариант будет discord, если вы обычно вводите нужный вам эмодзи в юникоде (например, «: thumbsup:»), а затем ставите перед ним обратную косую черту (). Похоже на это:

Скриншот discord после выполнения инструкций

После этого отправьте его и скопируйте появившийся смайлик. Он должен выглядеть иначе, чем версия эмодзи, которую вы обычно видите в Discord.

Как только вы получите свой смайлик, ваш код должен выглядеть следующим образом:

 if payload.emoji.name == "🔌":