From 5153c2681d5754530691ea3bcc59992436262890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Gla=C3=9F?= Date: Mon, 26 Apr 2021 19:16:33 +0200 Subject: [PATCH] Keine Ahnung --- .../yoshibot/main/YoshiBot.java | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java b/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java index da81eeb..3b68e71 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java @@ -21,10 +21,7 @@ import lombok.SneakyThrows; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.OnlineStatus; -import net.dv8tion.jda.api.entities.Activity; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.VoiceChannel; +import net.dv8tion.jda.api.entities.*; import javax.security.auth.login.LoginException; import java.io.BufferedReader; @@ -32,11 +29,10 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Files; -import java.util.List; -import java.util.Random; -import java.util.UUID; +import java.util.*; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * Repräsentiert einen Yoshi-Bot. Der Bot initialisiert alle Ressourcen und schaltet sich in der startYoshiBot-Methode @@ -171,19 +167,24 @@ public final class YoshiBot { } public void joinVoiceChannelWithMostMembers() { - VoiceChannel maxVoiceChannel = null; - int maxMembers = 0; - for (VoiceChannel vc : guild.getVoiceChannels()) { - int membersInChannel = 0; - for (Member m : vc.getMembers()) - if (!m.getUser().isBot()) membersInChannel++; - if (membersInChannel > maxMembers) { - maxVoiceChannel = vc; - maxMembers = membersInChannel; - } + Map vcAmount = + guild.getVoiceChannels().stream() + .collect(Collectors.toMap(vc -> vc, + vc -> vc.getMembers().stream() + .filter(m -> !m.getUser().isBot()) + .count())); + + VoiceChannel channel = + vcAmount.entrySet().stream() + .filter(vc -> vc.getValue() > 0) + .max(Comparator.comparingLong(Map.Entry::getValue)) + .map(Map.Entry::getKey) + .orElse(null); + if (channel != null) { + PermissionOverride override = channel.getPermissionOverride( + Objects.requireNonNull(guild.getMember(jda.getSelfUser()))); } - if (maxMembers < 1) joinVoiceChannel(null); - else joinVoiceChannel(maxVoiceChannel); + joinVoiceChannel(channel); } public boolean playSound(File file, VoiceChannel vc) {