2 Commits

Author SHA1 Message Date
  yl60lepu 9887bbd695 Merge remote-tracking branch 'origin/master' 4 years ago
  yl60lepu 634dce07fa Exception bei fehlender Berechtigung abgefangen 4 years ago
1 changed files with 21 additions and 17 deletions
Unified View
  1. +21
    -17
      app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java

+ 21
- 17
app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java View File

@ -13,7 +13,6 @@ import de.yannicpunktdee.yoshibot.command.YoshiCommandDistributor;
import de.yannicpunktdee.yoshibot.listeners.CommandLine; import de.yannicpunktdee.yoshibot.listeners.CommandLine;
import de.yannicpunktdee.yoshibot.listeners.DiscordEventListener; import de.yannicpunktdee.yoshibot.listeners.DiscordEventListener;
import de.yannicpunktdee.yoshibot.utils.Logger; import de.yannicpunktdee.yoshibot.utils.Logger;
import de.yannicpunktdee.yoshibot.utils.RedditProvider;
import de.yannicpunktdee.yoshibot.utils.Resources; import de.yannicpunktdee.yoshibot.utils.Resources;
import de.yannicpunktdee.yoshibot.utils.SauceProvider; import de.yannicpunktdee.yoshibot.utils.SauceProvider;
import lombok.Getter; import lombok.Getter;
@ -25,6 +24,7 @@ import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel; import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.exceptions.InsufficientPermissionException;
import javax.security.auth.login.LoginException; import javax.security.auth.login.LoginException;
import java.io.BufferedReader; import java.io.BufferedReader;
@ -61,7 +61,7 @@ public final class YoshiBot {
* LavaPlayer AudioPlayerManager. * LavaPlayer AudioPlayerManager.
*/ */
public AudioPlayerManager audioPlayerManager; public AudioPlayerManager audioPlayerManager;
@Getter @Getter
private Guild guild; private Guild guild;
@ -118,11 +118,11 @@ public final class YoshiBot {
commandLineThread.start(); commandLineThread.start();
SauceProvider.init(300); SauceProvider.init(300);
//RedditProvider.init(); //RedditProvider.init();
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(YoshiBot::setRandomActivity, 0, 10, TimeUnit.HOURS); Executors.newScheduledThreadPool(1).scheduleAtFixedRate(YoshiBot::setRandomActivity, 0, 10, TimeUnit.HOURS);
joinVoiceChannelWithMostMembers(); joinVoiceChannelWithMostMembers();
} }
@ -159,17 +159,21 @@ public final class YoshiBot {
yoshiBot.jda.getPresence().setActivity(Activity.playing(activity)); yoshiBot.jda.getPresence().setActivity(Activity.playing(activity));
Logger.logInfo("Setze Aktivität auf " + activity); Logger.logInfo("Setze Aktivität auf " + activity);
} }
public synchronized void joinVoiceChannel(VoiceChannel vc) { public synchronized void joinVoiceChannel(VoiceChannel vc) {
if (vc == null) { if (vc == null) {
guild.getAudioManager().closeAudioConnection(); guild.getAudioManager().closeAudioConnection();
return; return;
} }
if (guild.getAudioManager().getConnectedChannel() != null &&
vc.getIdLong() == guild.getAudioManager().getConnectedChannel().getIdLong()) return;
guild.getAudioManager().openAudioConnection(vc);
if(guild.getAudioManager().getConnectedChannel() != null &&
vc.getIdLong() == guild.getAudioManager().getConnectedChannel().getIdLong()) return;
try{
guild.getAudioManager().openAudioConnection(vc);
}catch(InsufficientPermissionException e){
Logger.logWarning("Durfte dem VoiceChannel " + vc.getName() + " nicht beitreten.");
}
} }
public void joinVoiceChannelWithMostMembers() { public void joinVoiceChannelWithMostMembers() {
VoiceChannel maxVoiceChannel = null; VoiceChannel maxVoiceChannel = null;
int maxMembers = 0; int maxMembers = 0;
@ -185,20 +189,20 @@ public final class YoshiBot {
if (maxMembers < 1) joinVoiceChannel(null); if (maxMembers < 1) joinVoiceChannel(null);
else joinVoiceChannel(maxVoiceChannel); else joinVoiceChannel(maxVoiceChannel);
} }
public boolean playSound(File file, VoiceChannel vc) { public boolean playSound(File file, VoiceChannel vc) {
if (!file.isFile()) return false; if (!file.isFile()) return false;
joinVoiceChannel(vc); joinVoiceChannel(vc);
audioPlayerManager.loadItem(file.getAbsolutePath(), new AudioLoadResultHandlerImpl()); audioPlayerManager.loadItem(file.getAbsolutePath(), new AudioLoadResultHandlerImpl());
return true; return true;
} }
public boolean sayTTS(String text, VoiceChannel vc) { public boolean sayTTS(String text, VoiceChannel vc) {
String path = Resources.getTempPath() + UUID.randomUUID() + ".opus"; String path = Resources.getTempPath() + UUID.randomUUID() + ".opus";
try { try {
ProcessBuilder pb = new ProcessBuilder( ProcessBuilder pb = new ProcessBuilder(
"python3", "python3",
@ -209,7 +213,7 @@ public final class YoshiBot {
"de", "de",
"--out", "--out",
path); path);
Process p = pb.start(); Process p = pb.start();
BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream())); BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
@ -224,7 +228,7 @@ public final class YoshiBot {
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
return playSound(new File(path), vc); return playSound(new File(path), vc);
} }


Loading…
Cancel
Save