From 9044eb2179134bf4fe7aa193f3fc9dcd6642ce56 Mon Sep 17 00:00:00 2001 From: Yannic Link Date: Tue, 21 Sep 2021 17:28:58 +0200 Subject: [PATCH] Status Provider added --- .../yoshibot/main/YoshiBot.java | 4 +- .../yoshibot/utils/StatusProvider.java | 84 +++++++++++++++++++ rsc/activities.txt | 5 +- rsc/audio/.gitkeep | 0 rsc/byebyes.txt | 22 ++++- rsc/greetings.txt | 15 +++- rsc/sauceConfig.json | 37 +++++--- 7 files changed, 152 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java delete mode 100644 rsc/audio/.gitkeep 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 4b45304..d935eaa 100644 --- a/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/main/YoshiBot.java @@ -15,6 +15,7 @@ import de.yannicpunktdee.yoshibot.listeners.DiscordEventListener; import de.yannicpunktdee.yoshibot.utils.Logger; import de.yannicpunktdee.yoshibot.utils.Resources; import de.yannicpunktdee.yoshibot.utils.SauceProvider; +import de.yannicpunktdee.yoshibot.utils.StatusProvider; import lombok.Getter; import lombok.SneakyThrows; import net.dv8tion.jda.api.JDA; @@ -114,7 +115,8 @@ public final class YoshiBot { commandLineThread = new CommandLine(); commandLineThread.start(); - + + StatusProvider.provide(15, guild); SauceProvider.init(300); //RedditProvider.init(); diff --git a/app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java new file mode 100644 index 0000000..1797a81 --- /dev/null +++ b/app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java @@ -0,0 +1,84 @@ +package de.yannicpunktdee.yoshibot.utils; + +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.TextChannel; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class StatusProvider { + + private static final String SERVER_URL = "85.214.148.23"; + private static final String statusChannelId = "889880296168755231"; + private static final String messageId = "889887149850251304"; + + private static final ScheduledExecutorService statusScheduler = Executors.newScheduledThreadPool(1); + + private static int lastPlayersOnline = -1; + + + public static void provide(int secondsPerTime, Guild guild){ + TextChannel statusChannel = guild.getTextChannelById(statusChannelId); + statusScheduler.scheduleAtFixedRate(() -> { + try { + updateStatusMessage(statusChannel); + } catch (IOException e) { + Logger.logError("Konnte Status nicht richtig abfragen."); + } + }, 0, secondsPerTime, TimeUnit.SECONDS); + } + + public static void updateStatusMessage(TextChannel statusChannel) throws IOException { + int newPlayersOnline = getPlayersOnline(); + if(newPlayersOnline == lastPlayersOnline) return; + else lastPlayersOnline = newPlayersOnline; + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Status"); + eb.addField("Minecraft-Server, Spieler online: ", Integer.toString(lastPlayersOnline), false); + statusChannel.editMessageById(messageId, eb.build()).queue(); + } + + private static int getPlayersOnline() throws IOException { + Socket socket = null; + DataOutputStream out = null; + DataInputStream in = null; + + try { + socket = new Socket(SERVER_URL, 25565); + out = new DataOutputStream(socket.getOutputStream()); + in = new DataInputStream(socket.getInputStream()); + } catch (UnknownHostException e) { + System.err.println("Don't know about host: " + SERVER_URL); + } catch (IOException e) { + System.err.println("Couldn't get I/O for " + "the connection to:" + SERVER_URL); + } + + out.write(0xFE); + + byte[] b = new byte[241]; + in.read(b, 0, 241); + StringBuffer buffer = new StringBuffer(); + for (int i = 4; i < b.length; i++) { + if (b[i] != 0) { + buffer.append((char) b[i]); + } + } + + String[] split = buffer.toString().split(String.valueOf((char) -89)); + + out.close(); + in.close(); + socket.close(); + + return Integer.parseInt(split[1]); + } + +} diff --git a/rsc/activities.txt b/rsc/activities.txt index 56d5e46..9291b0d 100644 --- a/rsc/activities.txt +++ b/rsc/activities.txt @@ -1,6 +1,7 @@ Haare waschen -Kleine Menschen (Vanessa) verprügeln +Kleine Menschen (Honey) 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 +Sich 'nen saftigen Knackarsch reinzimmern +Spielt Rasputin bei Just Dance diff --git a/rsc/audio/.gitkeep b/rsc/audio/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/rsc/byebyes.txt b/rsc/byebyes.txt index 4007a85..c55a430 100644 --- a/rsc/byebyes.txt +++ b/rsc/byebyes.txt @@ -4,4 +4,24 @@ Tschö %s. Geh kacken %s. %s verlässt uns unu. %s ist kurz Halle Peißen. -Oh nein, oh fick, %s kann uns nicht hören, denn er/sie/ser hat Lufthülsen im Ohr! \ No newline at end of file +%s geht Haare waschen. +%s ist kurz den Ofen schrubben. +%s ist ein Verräter. +Algengrütze, %s ist weg. +Walfischdreck, %s ist weg. +Ach verdammt, das Killerkaninchen hat %s erwischt. +%s geht den Agaven-Dickbaum suchen +%s geht Müll mit Kevin aus Oldenburg sammeln. +%s macht nun schmutzige Sachen auf einem anderen Discord. +%s geht nun mit Seliner telefonieren. +%s ist ein Wichser. +Man darf nun über %s lästern. +%s wurde fachgerecht entsorgt. +%s geht jetzt seine Nachbarn teebeuteln. +Oh nein wir haben %s verloren. +Unga bunga, wo %s? +%s hasst jeden hier. +%s hats erwischt. +%s ist aus zu großer Höhe gefallen. +%s hat versucht in Lava zu schwimmen. +%s ist an Pauls Kartoffelsalat gestorben.. diff --git a/rsc/greetings.txt b/rsc/greetings.txt index 35dde64..6f994f5 100644 --- a/rsc/greetings.txt +++ b/rsc/greetings.txt @@ -5,4 +5,17 @@ Hurra hurra %s ist da. %s ist gekommen um uns zu erleuchten. %s was ist deine Weisheit? Es erscheine: %s! -Ja ach scheiß doch die Wand an, %s ist da! \ No newline at end of file +Ja ach scheiß doch die Wand an, %s ist da! +%s ist vom Rauchen zurück. +%s beehrt uns juhu tralala. +%s ist gekommen um zu kommen. +%s ich wähle dich! +Zuerst war das nichts, dann %s. +Ist es ein Flugzeug? Ist es ein Vogel? Nein es ist %s. +Hajoa schleck ma ja %s ist da. +%s betritt das Hornyjail. +Moin %s. +%s kommt für billige Unterhaltung. +%s lässt sich für 2 Euro in die Eier treten. +%s ist ein Mann / Männin von Ähre. +%s hat sich entschieden bliat zu kosten. diff --git a/rsc/sauceConfig.json b/rsc/sauceConfig.json index 9bdd3ae..25cf9a9 100644 --- a/rsc/sauceConfig.json +++ b/rsc/sauceConfig.json @@ -1,6 +1,22 @@ { "tags_general_filter": [ + "-bimbo", + "-huge_ass", + "-necrophilia", + "-peeing", + "-decapitation", + "-pig", + "-gigantic_breasts", + "-brain_removal", + "-amputee", + "-age_difference", + "-massive_ass", + "-gigantic_ass", + "-hyper_*", + "-bloomers", + "-kirby", "-anthro", + "-fart", "-nonconsensual", "-rape", "-vore", @@ -8,18 +24,18 @@ "-yiff", "-snuff", "-crossdressing", + "-gore", + "-death", + "-dead", "-mind_break", "-overweight", "-hyper", - "-udders" + "-udders", + "-bird", + "-canine", + "-urine", ], "feeds": [ - { - "channel": "snek-feed", - "tags": [ - "lamia" - ] - }, { "channel": "auto-feed", "tags": [ @@ -35,15 +51,16 @@ "nintendo", "star_wars", "nier:_automata", - "monster_girl", "tate_no_yuusha_no_nariagari", "zero_two_(darling_in_the_franxx)", "re:zero_kara_hajimeru_isekai_seikatsu", "fate_(series)", "darling_in_the_franxx", "dungeon_ni_deai_wo_motomeru_no_wa_machigatteiru_darou_ka", - "touhou", - "elf" + "handholding", + "elf", + "dota_2", + "one_piece" ], "breasts" ]