Discord API (JDA) Получает пользователя из определенной гильдии

#java

#java

Вопрос:

 try {
    final JDABuilder jdaBuilder = JDABuilder.createDefault(TOKEN_ID);
    jdaBuilder.addEventListeners(new DiscordListener());
    _jdaBuild = jdaBuilder.build();
} catch(final LoginException e) {

}
  

Я попытался использовать

 _jdaBuild.getUserById(userId);
  

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

Как я могу получить базу пользователей по его идентификатору или имени из Гильдии и отправить ему личное?

Ответ №1:

Вам нужно использовать JDA#retrieveUserById​(long) , потому JDA#getUserById(long) что работает только в том случае, если пользователь кэширован:

 try {
    final JDABuilder jdaBuilder = JDABuilder.createDefault(TOKEN_ID);
    jdaBuilder.addEventListeners(new DiscordListener());
    _jdaBuild = jdaBuilder.build();
} catch(final LoginException e) {
    //...
}
//...
User user = _jdaBuild.retrieveUserById("...").complete();