diff --git a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java index c4af706f..7ac28228 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java +++ b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java @@ -21,15 +21,15 @@ package de.steamwar.velocitycore.discord.channels; import de.steamwar.sql.SteamwarUser; import de.steamwar.velocitycore.discord.DiscordBot; +import it.unimi.dsi.fastutil.Pair; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; public class CouncilChannel extends StaticMessageChannel { @@ -48,16 +48,21 @@ public class CouncilChannel extends StaticMessageChannel { MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder(); messageCreateBuilder.setContent("# Ratsmitglieder"); - for (Member member : DiscordBot.getGuild().findMembersWithRoles(role).get()) { - SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong()); - if (steamwarUser == null) - continue; - - messageCreateBuilder.addEmbeds(new EmbedBuilder() - .setTitle(steamwarUser.getUserName()) - .setImage("https://api.steamwar.de/data/skin/" + steamwarUser.getUUID().toString()) - .build()); - } + DiscordBot.getGuild().findMembersWithRoles(role).get() + .stream() + .map(member -> { + SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong()); + String name = steamwarUser == null ? member.getEffectiveName() : steamwarUser.getUserName(); + UUID uuid = steamwarUser == null ? null : steamwarUser.getUUID(); + return Pair.of(name, uuid); + }) + .sorted(Comparator.comparing(Pair::key)) + .forEach(pair -> { + messageCreateBuilder.addEmbeds(new EmbedBuilder() + .setTitle(pair.key()) + .setImage(pair.value() == null ? null : "https://api.steamwar.de/data/skin/" + pair.value().toString()) + .build()); + }); return messageCreateBuilder; }, event -> {});