Как мне заставить своего бота реагировать на собственные эмоции? - PullRequest
0 голосов
/ 22 апреля 2020

В настоящее время я использую что-то похожее на это:

String emote = event.getJDA().getEmoteById("emoteAlias:guildId").getAsMention();
            event.getMessage().addReaction(emote).queue();

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

При попытке запустить это говорит, что ожидает допустимое длинное значение. Я пытался просто дать длинное значение идентификатора эмоции. Не сработало.

Может кто-нибудь показать, как должен выглядеть синтаксис для этого фрагмента?

Также я попытался прочитать документацию. Это действительно не очень понятно и не показывает примеров.

1 Ответ

2 голосов
/ 22 апреля 2020

getEmoteById принимает сам необработанный идентификатор. emoteAlias:guildId - это не способ ссылаться на эмоции, поскольку в одной и той же гильдии вы можете иметь несколько эмоций с одним и тем же именем. Вы можете получить идентификатор эмоции, разместив его в канале диссонанса с \:name:, что приведет к формату, подобному <:name:id>.

. Вам не нужен экземпляр Emote, чтобы добавить реакцию. Вы можете напрямую передать код реакции методу, например addReaction("name:id"):

  1. Опубликовать эмоции в чате. Обратите внимание, что это не "идентификатор гильдии", а имя и идентификатор эмоции. У эмоций есть свои идентификаторы, подобные сообщениям.

enter image description here

enter image description here

Сделайте emote константой в вашем коде
public class Emotes {
    public static final String VIM = "vim:414776062380343296";
}
Используйте эмоции в вашем addReaction звонке
channel.addReaction(Emotes.VIM).queue();
...