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();