Поскольку вы специально используете ctx.message.guild.emojis
, иначе вы пытаетесь получить эмодзи из контекстной гильдии (которая может не иметь его).
Вы можете избавиться от get
поиска по имени и просто используйте bot.get_emoji () , где бот - это ваш бот / клиент объект.
Ваш бот будет хранить все смайлики из всех гильдий во внутреннем кеше и get_emoji()
будет извлекать его оттуда, чтобы он работал для всех гильдий.
Для этого вам понадобится эмодзи ID (целое число), а не имя, как вы сейчас получаете. Вы можете получить по имени, а затем получить его идентификатор, но это просто ненужные шаги.
Просто используйте Emoji ID, поскольку они уникальны и не могут изменяться (имена могут быть как дубликатами, так и могут меняться, чтобы вы могли столкнуться с проблемами при получении имени).
Вы можете быстро получить смайлики Идентификатор с помощью клиентского приложения Discord:
- введите пользовательские эмодзи в поле ввода
- введите
\
перед emoji - отправьте сообщение в чат
- сообщение преобразуется в нечто вроде
<:emoji_name:emoji_id>