From 3b6fdbeec3e76663f59b1cbecaba2a4d77db7cb4 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Thu, 21 May 2026 10:16:17 +0200 Subject: [PATCH] Fix CouncilChannel --- .../discord/channels/CouncilChannel.java | 49 ++++++++----------- .../channels/StaticMessageChannel.java | 18 ++++--- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java index 5a11bb7c..b64c16de 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java +++ b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/CouncilChannel.java @@ -22,9 +22,7 @@ package de.steamwar.velocitycore.discord.channels; import de.steamwar.sql.SteamwarUser; import de.steamwar.velocitycore.VelocityCore; 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; @@ -40,36 +38,29 @@ public class CouncilChannel extends StaticMessageChannel { } public CouncilChannel(Role role, ThreadChannel threadChannel) { - super(threadChannel, () -> { + super(threadChannel, (consumer) -> { MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder(); messageCreateBuilder.setContent("# Ratsmitglieder"); - - List members; - try { - members = DiscordBot.getGuild().findMembersWithRoles(role).onError(throwable -> { - // Ignore - }).get(); - } catch (Exception e) { + DiscordBot.getGuild().findMembersWithRoles(role).onError(throwable -> { VelocityCore.getLogger().warning("Could not get members for " + role.getName()); - return messageCreateBuilder; - } - - members.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; + consumer.accept(messageCreateBuilder); + }).onSuccess(members -> { + members.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 Map.entry(name, uuid); + }) + .sorted(Comparator.comparing(Map.Entry::getKey)) + .forEach(entry -> { + messageCreateBuilder.addEmbeds(new EmbedBuilder() + .setTitle(entry.getKey()) + .setImage(entry.getValue() == null ? null : "https://api.steamwar.de/data/skin/" + entry.getValue().toString()) + .build()); + }); + consumer.accept(messageCreateBuilder); + }); }, event -> { }); diff --git a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/StaticMessageChannel.java b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/StaticMessageChannel.java index afd276a3..d52c1354 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/discord/channels/StaticMessageChannel.java +++ b/VelocityCore/src/de/steamwar/velocitycore/discord/channels/StaticMessageChannel.java @@ -40,7 +40,7 @@ public class StaticMessageChannel extends DiscordChannel { } private Message message; - private final Supplier supplier; + private final Consumer> supplier; private final Consumer interaction; public StaticMessageChannel(String channel, Supplier supplier) { @@ -50,12 +50,12 @@ public class StaticMessageChannel extends DiscordChannel { public StaticMessageChannel(String channel, Supplier supplier, Consumer interaction) { super(channel, 0); - this.supplier = supplier; + this.supplier = messageCreateBuilderConsumer -> supplier.get(); this.interaction = interaction; init(); } - public StaticMessageChannel(MessageChannel channel, Supplier supplier, Consumer interaction) { + public StaticMessageChannel(MessageChannel channel, Consumer> supplier, Consumer interaction) { super(channel, 0); this.supplier = supplier; this.interaction = interaction; @@ -77,11 +77,13 @@ public class StaticMessageChannel extends DiscordChannel { } public void update() { - if (message == null) { - getChannel().sendMessage(supplier.get().build()).queue(m -> message = m); - } else { - message.editMessage(MessageEditData.fromCreateData(supplier.get().build())).queue(); - } + supplier.accept(messageCreateBuilder -> { + if (message == null) { + getChannel().sendMessage(messageCreateBuilder.build()).queue(m -> message = m); + } else { + message.editMessage(MessageEditData.fromCreateData(messageCreateBuilder.build())).queue(); + } + }); } @Override