discord.py emoji все серверы бот в - PullRequest
2 голосов
/ 14 марта 2020

У меня есть бот, который отправляет встраивания, включающие в себя спецификации emojis c, для каждого встраивания, и он отлично работает на моем тестовом сервере, где я загрузил эмодзи, но они не отображаются на других серверах, поскольку на этих серверах нет custom emoji.

с использованием:

emoji = get(ctx.message.guild.emojis, name='emojinamehere')

работает, конечно, для сервера, на котором он находится, но есть ли способ получить и использовать все смайлики с любых серверов, на которых работает бот?

1 Ответ

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

Поскольку вы специально используете ctx.message.guild.emojis, иначе вы пытаетесь получить эмодзи из контекстной гильдии (которая может не иметь его).

Вы можете избавиться от get поиска по имени и просто используйте bot.get_emoji () , где бот - это ваш бот / клиент объект.

Ваш бот будет хранить все смайлики из всех гильдий во внутреннем кеше и get_emoji() будет извлекать его оттуда, чтобы он работал для всех гильдий.

Для этого вам понадобится эмодзи ID (целое число), а не имя, как вы сейчас получаете. Вы можете получить по имени, а затем получить его идентификатор, но это просто ненужные шаги.

Просто используйте Emoji ID, поскольку они уникальны и не могут изменяться (имена могут быть как дубликатами, так и могут меняться, чтобы вы могли столкнуться с проблемами при получении имени).

Вы можете быстро получить смайлики Идентификатор с помощью клиентского приложения Discord:

  • введите пользовательские эмодзи в поле ввода
  • введите \ перед emoji
  • отправьте сообщение в чат
  • сообщение преобразуется в нечто вроде <:emoji_name:emoji_id>
...