|
|
@ -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<VoiceChannel, Long> 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) { |
|
|
|