From f3078d127eb92458b03cce4cafc79d9d816d41bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Gla=C3=9F?= Date: Tue, 30 Mar 2021 06:47:20 +0200 Subject: [PATCH] Do activity --- .gitignore | 3 ++- .../yoshibot/main/YoshiBot.java | 26 ++++++++++++++++++- .../yoshibot/utils/Resources.java | 4 +++ .../yoshibot/utils/SauceProvider.java | 2 +- rsc/activities.txt | 6 +++++ 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 rsc/activities.txt diff --git a/.gitignore b/.gitignore index a213d79..20921b0 100644 --- a/.gitignore +++ b/.gitignore @@ -195,4 +195,5 @@ gradle-app.setting rsc/* !rsc/Ordnerstruktur.txt !rsc/tts.py -!rsc/sauceConfig.json \ No newline at end of file +!rsc/sauceConfig.json +!rsc/activities.txt \ No newline at end of file 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 267725e..6616e76 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java @@ -12,13 +12,24 @@ import de.yannicpunktdee.yoshibot.command.YoshiCommandContext; import de.yannicpunktdee.yoshibot.command.YoshiCommandDistributor; import de.yannicpunktdee.yoshibot.listeners.CommandLine; import de.yannicpunktdee.yoshibot.listeners.CommandListener; +import de.yannicpunktdee.yoshibot.utils.Logger; import de.yannicpunktdee.yoshibot.utils.Resources; import de.yannicpunktdee.yoshibot.utils.SauceProvider; +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 java.io.BufferedReader; +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Random; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + /** * Repräsentiert einen Yoshi-Bot. Der Bot initialisiert alle Ressourcen und schaltet sich in der startYoshiBot-Methode * online und beginnt dann zu lauschen. Parallel lauscht ein Thread auf Konsoleneingaben für administrative Zwecke, die @@ -79,7 +90,7 @@ public class YoshiBot { jda = jdaBuilder.build(); - jdaBuilder.setStatus(OnlineStatus.ONLINE).setActivity(Activity.playing("Haare waschen.")); + jdaBuilder.setStatus(OnlineStatus.ONLINE); System.out.println("YoshiBot online."); @@ -87,6 +98,8 @@ public class YoshiBot { commandLineThread.start(); SauceProvider provider = new SauceProvider(300); + + Executors.newScheduledThreadPool(1).scheduleAtFixedRate(YoshiBot::setRandomActivity, 0, 10, TimeUnit.HOURS); } public synchronized void stop() { @@ -113,4 +126,15 @@ public class YoshiBot { return YoshiBot.instance; } + @SneakyThrows + private static void setRandomActivity() { + YoshiBot yoshiBot = YoshiBot.getInstance(); + yoshiBot.jda.awaitReady(); + List text = Files.readAllLines(new File(Resources.getActivityPath()).toPath()); + Random rand = new Random(); + String activity = text.get(rand.nextInt(text.size())); + yoshiBot.jda.getPresence().setActivity(Activity.playing(activity)); + Logger.log("Setze Aktivität auf " + activity, Logger.Type.INFO); + } + } diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/Resources.java b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/Resources.java index 267a10d..896ac87 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/Resources.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/Resources.java @@ -37,6 +37,9 @@ public final class Resources { @Getter private static String sauceConfigPath; + @Getter + private static String activityPath; + public synchronized static boolean init(String pathToConfig) { Logger.log("Lade Config.properties ...", Type.INFO); @@ -66,6 +69,7 @@ public final class Resources { tts_path = propertiesFile.getProperty("path_to_tts"); sauceConfigPath = propertiesFile.getProperty("path_to_sauce_config"); + activityPath = propertiesFile.getProperty("path_to_activities"); boolean isOk = initJdaBuilderString(); if (isOk) isOk = initChannelRestrict(); diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java index 07a202c..6cbb763 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/SauceProvider.java @@ -19,7 +19,7 @@ public class SauceProvider { private static final String BASE_URL = "https://r34-json.herokuapp.com/"; - private int lastKnownSauce = 4584740; + private int lastKnownSauce = -1; private boolean isSauceInit = false; diff --git a/rsc/activities.txt b/rsc/activities.txt new file mode 100644 index 0000000..56d5e46 --- /dev/null +++ b/rsc/activities.txt @@ -0,0 +1,6 @@ +Haare waschen +Kleine Menschen (Vanessa) verprügeln +Im Kosovo Hexen verbennen +Magnesiumcarbonat schnupfen +Offene Wunden mit Sekundenkleber verschließen +Sich 'nen saftigen Knackarsch reinzimmern \ No newline at end of file