forked from SteamWar/SteamWar
Fix CouncilChannel
This commit is contained in:
@@ -22,9 +22,7 @@ package de.steamwar.velocitycore.discord.channels;
|
|||||||
import de.steamwar.sql.SteamwarUser;
|
import de.steamwar.sql.SteamwarUser;
|
||||||
import de.steamwar.velocitycore.VelocityCore;
|
import de.steamwar.velocitycore.VelocityCore;
|
||||||
import de.steamwar.velocitycore.discord.DiscordBot;
|
import de.steamwar.velocitycore.discord.DiscordBot;
|
||||||
import it.unimi.dsi.fastutil.Pair;
|
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
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.Role;
|
||||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||||
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||||
@@ -40,36 +38,29 @@ public class CouncilChannel extends StaticMessageChannel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CouncilChannel(Role role, ThreadChannel threadChannel) {
|
public CouncilChannel(Role role, ThreadChannel threadChannel) {
|
||||||
super(threadChannel, () -> {
|
super(threadChannel, (consumer) -> {
|
||||||
MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder();
|
MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder();
|
||||||
messageCreateBuilder.setContent("# Ratsmitglieder");
|
messageCreateBuilder.setContent("# Ratsmitglieder");
|
||||||
|
DiscordBot.getGuild().findMembersWithRoles(role).onError(throwable -> {
|
||||||
List<Member> members;
|
|
||||||
try {
|
|
||||||
members = DiscordBot.getGuild().findMembersWithRoles(role).onError(throwable -> {
|
|
||||||
// Ignore
|
|
||||||
}).get();
|
|
||||||
} catch (Exception e) {
|
|
||||||
VelocityCore.getLogger().warning("Could not get members for " + role.getName());
|
VelocityCore.getLogger().warning("Could not get members for " + role.getName());
|
||||||
return messageCreateBuilder;
|
consumer.accept(messageCreateBuilder);
|
||||||
}
|
}).onSuccess(members -> {
|
||||||
|
members.stream()
|
||||||
members.stream()
|
.map(member -> {
|
||||||
.map(member -> {
|
SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong());
|
||||||
SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong());
|
String name = steamwarUser == null ? member.getEffectiveName() : steamwarUser.getUserName();
|
||||||
String name = steamwarUser == null ? member.getEffectiveName() : steamwarUser.getUserName();
|
UUID uuid = steamwarUser == null ? null : steamwarUser.getUUID();
|
||||||
UUID uuid = steamwarUser == null ? null : steamwarUser.getUUID();
|
return Map.entry(name, uuid);
|
||||||
return Pair.of(name, uuid);
|
})
|
||||||
})
|
.sorted(Comparator.comparing(Map.Entry::getKey))
|
||||||
.sorted(Comparator.comparing(Pair::key))
|
.forEach(entry -> {
|
||||||
.forEach(pair -> {
|
messageCreateBuilder.addEmbeds(new EmbedBuilder()
|
||||||
messageCreateBuilder.addEmbeds(new EmbedBuilder()
|
.setTitle(entry.getKey())
|
||||||
.setTitle(pair.key())
|
.setImage(entry.getValue() == null ? null : "https://api.steamwar.de/data/skin/" + entry.getValue().toString())
|
||||||
.setImage(pair.value() == null ? null : "https://api.steamwar.de/data/skin/" + pair.value().toString())
|
.build());
|
||||||
.build());
|
});
|
||||||
});
|
consumer.accept(messageCreateBuilder);
|
||||||
|
});
|
||||||
return messageCreateBuilder;
|
|
||||||
}, event -> {
|
}, event -> {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+10
-8
@@ -40,7 +40,7 @@ public class StaticMessageChannel extends DiscordChannel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Message message;
|
private Message message;
|
||||||
private final Supplier<MessageCreateBuilder> supplier;
|
private final Consumer<Consumer<MessageCreateBuilder>> supplier;
|
||||||
private final Consumer<GenericComponentInteractionCreateEvent> interaction;
|
private final Consumer<GenericComponentInteractionCreateEvent> interaction;
|
||||||
|
|
||||||
public StaticMessageChannel(String channel, Supplier<MessageCreateBuilder> supplier) {
|
public StaticMessageChannel(String channel, Supplier<MessageCreateBuilder> supplier) {
|
||||||
@@ -50,12 +50,12 @@ public class StaticMessageChannel extends DiscordChannel {
|
|||||||
|
|
||||||
public StaticMessageChannel(String channel, Supplier<MessageCreateBuilder> supplier, Consumer<GenericComponentInteractionCreateEvent> interaction) {
|
public StaticMessageChannel(String channel, Supplier<MessageCreateBuilder> supplier, Consumer<GenericComponentInteractionCreateEvent> interaction) {
|
||||||
super(channel, 0);
|
super(channel, 0);
|
||||||
this.supplier = supplier;
|
this.supplier = messageCreateBuilderConsumer -> supplier.get();
|
||||||
this.interaction = interaction;
|
this.interaction = interaction;
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public StaticMessageChannel(MessageChannel channel, Supplier<MessageCreateBuilder> supplier, Consumer<GenericComponentInteractionCreateEvent> interaction) {
|
public StaticMessageChannel(MessageChannel channel, Consumer<Consumer<MessageCreateBuilder>> supplier, Consumer<GenericComponentInteractionCreateEvent> interaction) {
|
||||||
super(channel, 0);
|
super(channel, 0);
|
||||||
this.supplier = supplier;
|
this.supplier = supplier;
|
||||||
this.interaction = interaction;
|
this.interaction = interaction;
|
||||||
@@ -77,11 +77,13 @@ public class StaticMessageChannel extends DiscordChannel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void update() {
|
public void update() {
|
||||||
if (message == null) {
|
supplier.accept(messageCreateBuilder -> {
|
||||||
getChannel().sendMessage(supplier.get().build()).queue(m -> message = m);
|
if (message == null) {
|
||||||
} else {
|
getChannel().sendMessage(messageCreateBuilder.build()).queue(m -> message = m);
|
||||||
message.editMessage(MessageEditData.fromCreateData(supplier.get().build())).queue();
|
} else {
|
||||||
}
|
message.editMessage(MessageEditData.fromCreateData(messageCreateBuilder.build())).queue();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user