JDA - некорректный список пользователей
Я создаю Discord бота и столкнулся со странной проблемой. Нужно пройтись по каждому пользователю на сервере и выполнить условное действие. Но при получении списка всех участников, в нем есть только я и сам бот.
public class Bot extends ListenerAdapter {
public void onGuildMessageReceived(GuildMessageReceivedEvent Event) {
String Message = Event.getMessage().getContentRaw();
if(Message.charAt(0) == Globals.BOT_PREFIX) {
String[] Args = Message.split("\\s+");
if(Args[0].equalsIgnoreCase(CommandType.COMMAND_DEV_TEST)) {
List<Member> MemberList = Event.getGuild().getMembers();
for(int i = 0; i < MemberList.size(); i++)
System.out.println(MemberList.get(i));
}
}
}
Даже если пишет другой человек, то все равно отображаюсь только я и бот.
Ответы (1 шт):
Автор решения: Shadow4571
→ Ссылка
Решение найдено.
https://stackoverflow.com/questions/61226721/discord-jda-invalid-member-list/61229594#61229594
При использовании JDA выше 4.1.1, необходимо во время инициализации бота использовать:
JDABuilder.createDefault(token)
.setChunkingFilter(ChunkingFilter.ALL) // enable member chunking for all guilds
.setMemberCachePolicy(MemberCachePolicy.ALL) // ignored if chunking enabled
.enableIntents(GatewayIntent.GUILD_MEMBERS)
.build();