From 2e07c4568f754d4ee3b3bc161394c92ff40e85d4 Mon Sep 17 00:00:00 2001 From: yl60lepu Date: Mon, 29 Mar 2021 23:10:09 +0200 Subject: [PATCH] =?UTF-8?q?Funktionalit=C3=A4ten=20in=20public=20static=20?= =?UTF-8?q?Funktionen=20ausgelagert,=20damit=20wiederverwendet=20werden=20?= =?UTF-8?q?k=C3=B6nnen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/commands/PlayCommand.java | 14 ++++++++--- .../yoshibot/command/commands/SayCommand.java | 24 ++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/PlayCommand.java b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/PlayCommand.java index 5b42ece..87da123 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/PlayCommand.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/PlayCommand.java @@ -19,6 +19,16 @@ public class PlayCommand extends YoshiCommand { super(context); } + public static boolean play(String fileName, VoiceChannel vc){ + YoshiBot yoshiBot = YoshiBot.getInstance(); + + AudioController ac = yoshiBot.audioControllerManager.getController(vc.getGuild().getIdLong()); + vc.getGuild().getAudioManager().openAudioConnection(vc); + yoshiBot.audioPlayerManager.loadItem(fileName, new AudioLoadResultHandlerImpl(ac)); + + return true; + } + @Override public boolean execute() { if(!super.execute()) return false; @@ -38,9 +48,7 @@ public class PlayCommand extends YoshiCommand { return false; } - AudioController ac = yoshiBot.audioControllerManager.getController(vc.getGuild().getIdLong()); - vc.getGuild().getAudioManager().openAudioConnection(vc); - yoshiBot.audioPlayerManager.loadItem(fileName, new AudioLoadResultHandlerImpl(ac)); + play(fileName, vc); return true; } diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SayCommand.java b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SayCommand.java index d43baf5..00263e4 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SayCommand.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/command/commands/SayCommand.java @@ -28,26 +28,23 @@ public class SayCommand extends YoshiCommand { super(context); } - @Override - public boolean execute() { - if(!super.execute()) return false; - + public static String buildTTSAudio(String text){ String path = Resources.buildTempAudioFilePath(UUID.randomUUID().toString()); - + File test = new File(System.getProperty("java.io.tmpdir") + "/yoshibot"); if (!test.exists()) { if (!test.mkdir()) { Logger.log("Tempordner konnte nicht erstellt werden!", Logger.Type.ERROR); - return false; + return null; } } - + try { ProcessBuilder pb = new ProcessBuilder( "python3", Resources.getTts_path(), "--text", - context.getArgument("text"), + text, "--lang", "de", "--out", @@ -70,9 +67,18 @@ public class SayCommand extends YoshiCommand { } } catch (IOException | InterruptedException e) { e.printStackTrace(); - return false; + return null; } + return path; + } + + @Override + public boolean execute() { + if(!super.execute()) return false; + + String path = buildTTSAudio(context.getArgument("text")); + List channels = YoshiBot.getInstance().jda.getVoiceChannelsByName(context.getArgument("channel"), true); if(!(channels.size() > 0)) { context.getEvent().getTextChannel().sendMessage("Der Kanalname konnte nicht gefunden werden.").queue();