diff --git a/CryptixDataMining.iml b/CryptixDataMining.iml new file mode 100644 index 0000000..4098198 --- /dev/null +++ b/CryptixDataMining.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/README.md b/README.md index d5a3c69..b9b3810 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# Discord-Data-Mining -The official Discord-Data-Mining +# Discord-Data-Mining +The official Discord-Data-Mining diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..1142ec0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + Cryptix-Data-Mining + Cryptix-Data-Mining + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.9 + 1.9 + + + + + + + + jcenter + jcenter-bintray + http://jcenter.bintray.com + + + jitpack.io + https://jitpack.io + + + + + com.rethinkdb + rethinkdb-driver + 2.3.3 + + + net.dv8tion + JDA + LATEST + + + \ No newline at end of file diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF index ad0cb84..1d9c549 100644 --- a/src/META-INF/MANIFEST.MF +++ b/src/META-INF/MANIFEST.MF @@ -1,3 +1,3 @@ -Manifest-Version: 1.0 -Main-Class: discord.data.mining.Main - +Manifest-Version: 1.0 +Main-Class: discord.data.mining.Main + diff --git a/src/main/java/discord/data/mining/Database.java b/src/main/java/discord/data/mining/Database.java new file mode 100644 index 0000000..8395dd2 --- /dev/null +++ b/src/main/java/discord/data/mining/Database.java @@ -0,0 +1,31 @@ +package discord.data.mining; + +import com.rethinkdb.net.Connection; + +import static com.rethinkdb.RethinkDB.r; + +/** + * @author Hax + * @github github.com/Schlauer-Hax + * @time 19:40 07.08.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class Database + **/ + +public class Database { + + static Connection conn; + + public static void connect() { + conn = r.connection() + .hostname("localhost") + .db("DM") + .port(28015) + .connect(); + } + + public static Connection getConn() { + return conn; + } +} diff --git a/src/main/java/discord/data/mining/Listener/eventListener.java b/src/main/java/discord/data/mining/Listener/eventListener.java new file mode 100644 index 0000000..0198748 --- /dev/null +++ b/src/main/java/discord/data/mining/Listener/eventListener.java @@ -0,0 +1,33 @@ +package discord.data.mining.Listener; + +import discord.data.mining.Main; +import discord.data.mining.sendMessage; +import net.dv8tion.jda.core.AccountType; +import net.dv8tion.jda.core.EmbedBuilder; +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.JDABuilder; +import net.dv8tion.jda.core.events.Event; +import net.dv8tion.jda.core.events.ReadyEvent; +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +import java.awt.*; + + +/** + * @author GregTCLTK + * @time 21:22 29.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining.Listener + * @class onReactionAdd + **/ + + +public class eventListener extends ListenerAdapter { + + @Override + public void onGenericEvent(Event event) { + Main.Messageperh++; + sendMessage.sendMessage(event); + } +} diff --git a/src/main/java/discord/data/mining/Listener/managerListener.java b/src/main/java/discord/data/mining/Listener/managerListener.java new file mode 100644 index 0000000..2e1e529 --- /dev/null +++ b/src/main/java/discord/data/mining/Listener/managerListener.java @@ -0,0 +1,32 @@ +package discord.data.mining.Listener; + +import discord.data.mining.Main; +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +/** + * @author GregTCLTK + * @time 09:42 01.07.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining.Listener + * @class managerListener + **/ + +public class managerListener extends ListenerAdapter { + + @Override + public void onMessageReceived(MessageReceivedEvent event) { + if (event.getAuthor().getId().contains("401817301919465482") || event.getAuthor().getId().contains("261083609148948488")) { + if (event.getMessage().getContentRaw().equals("dm!shutdown")) { + + for (JDA Bots : Main.bots) { + Bots.shutdown(); + } + for (JDA Clients : Main.clients) { + Clients.shutdown(); + } + } + } + } +} diff --git a/src/main/java/discord/data/mining/Listener/onready.java b/src/main/java/discord/data/mining/Listener/onready.java new file mode 100644 index 0000000..f514f30 --- /dev/null +++ b/src/main/java/discord/data/mining/Listener/onready.java @@ -0,0 +1,44 @@ +package discord.data.mining.Listener; + +import discord.data.mining.Logger; +import discord.data.mining.Main; +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.entities.Guild; +import net.dv8tion.jda.core.entities.Invite; +import net.dv8tion.jda.core.events.ReadyEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +/** + * @author Hax + * @time 12:04 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining.Listener + * @class onready + **/ + +public class onready extends ListenerAdapter { + + @Override + public void onReady(ReadyEvent event) { + Logger.info("Client " + event.getJDA().getSelfUser().getName() + "#" +event.getJDA().getSelfUser().getDiscriminator() + "\nGuilds: " + event.getJDA().getGuilds().size() + "\nUser: " + event.getJDA().getUsers().size()); + Main.onlineclients.add(event.getJDA().getSelfUser().getName()); + Logger.info("Arraylist size " + Main.onlineclients.size() + " " + Main.clients.size()); + for (Guild guild : event.getJDA().getGuilds()) { + if (!guild.getId().equals("448554629282922527")) { + if (!Main.guilds.contains(guild)) { + Main.guilds.add(guild); + } else { + Logger.info("Leave " + guild.getName()); + guild.leave().queue(); + } + } + } + if (Main.onlineclients.size() == Main.clients.size()) { + Logger.info("All clients loaded"); + for (JDA jda : Main.clients) { + jda.addEventListener(new eventListener()); + } + } + } + +} diff --git a/src/main/java/discord/data/mining/Logger.java b/src/main/java/discord/data/mining/Logger.java index fc05378..d7332ed 100644 --- a/src/main/java/discord/data/mining/Logger.java +++ b/src/main/java/discord/data/mining/Logger.java @@ -1,21 +1,21 @@ -package discord.data.mining; - -import net.dv8tion.jda.core.EmbedBuilder; - -import java.time.Instant; - -/** - * @author GregTCLTK - * @time 21:26 30.06.2018 - * @project Discord-Data-Mining - * @package discord.data.mining - * @class Logger - **/ - -public class Logger { - public static void info(String info) { - Main.manager.get(0).getTextChannelById(Main.ConsoleLog).sendMessage(new EmbedBuilder().setColor(65280).setTimestamp(Instant.now()).setDescription(info).build()).queue(); - System.out.println("[" + Instant.now() + "] " + info); - // Zeit wird noch gefixt - } -} +package discord.data.mining; + +import net.dv8tion.jda.core.EmbedBuilder; + +import java.time.Instant; + +/** + * @author GregTCLTK + * @time 21:26 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class Logger + **/ + +public class Logger { + public static void info(String info) { + Main.manager.get(0).getTextChannelById(Main.ConsoleLog).sendMessage(new EmbedBuilder().setColor(65280).setTimestamp(Instant.now()).setDescription(info).build()).queue(); + System.out.println("[" + Instant.now() + "] " + info); + // Zeit wird noch gefixt + } +} diff --git a/src/main/java/discord/data/mining/Main.java b/src/main/java/discord/data/mining/Main.java index 6faf3c6..e741007 100644 --- a/src/main/java/discord/data/mining/Main.java +++ b/src/main/java/discord/data/mining/Main.java @@ -1,49 +1,51 @@ -package discord.data.mining; - -import discord.data.mining.Listener.MessageReceivedListener; -import discord.data.mining.Listener.ReadyListener; -import net.dv8tion.jda.core.AccountType; -import net.dv8tion.jda.core.JDA; -import net.dv8tion.jda.core.JDABuilder; -import net.dv8tion.jda.core.entities.Guild; - -import java.util.*; - -import static discord.data.mining.SECRETS.botTokens; -import static discord.data.mining.SECRETS.clienttokens; -import static discord.data.mining.SECRETS.managerTokens; - -public class Main { - - static long MessageLog = 462507170383134720L; - static long ReactionLog = 462524422713245696L; - static long ConsoleLog = 462556910206320640L; - public static ArrayList clients = new ArrayList<>(); - public static ArrayList bots = new ArrayList<>(); - public static ArrayList manager = new ArrayList<>(); - public static int currentBot = 0; - public static ArrayList onlineclients = new ArrayList<>(); - public static long Actionperh = 0; - public static ArrayList guilds = new ArrayList<>(); - - public static void main(String[] args) { - try { - for (String Token : managerTokens) { - manager.add(new JDABuilder(AccountType.BOT).setAutoReconnect(true).setToken(Token).addEventListener(new MessageReceivedListener()).buildAsync()); - } - - Thread.sleep(1500); - - onlinethread.main(); - for (String Token : clienttokens) { - clients.add(new JDABuilder(AccountType.CLIENT).setToken(Token).addEventListener(new ReadyListener()).setAutoReconnect(true).buildAsync()); - } - for (String Token : botTokens) { - bots.add(new JDABuilder(AccountType.BOT).setAutoReconnect(true).setToken(Token).buildAsync()); - } - Stats.start(); - } catch (Exception e) { - e.printStackTrace(); - } - } +package discord.data.mining; + +import discord.data.mining.Listener.eventListener; +import discord.data.mining.Listener.managerListener; +import discord.data.mining.Listener.onready; +import net.dv8tion.jda.core.AccountType; +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.JDABuilder; +import net.dv8tion.jda.core.entities.Guild; + +import java.util.*; + +import static discord.data.mining.SECRETS.botTokens; +import static discord.data.mining.SECRETS.clienttokens; +import static discord.data.mining.SECRETS.managerTokens; + +public class Main { + + public static long MessageLog = 462507170383134720L; + public static long ReactionLog = 462524422713245696L; + public static long ConsoleLog = 462556910206320640L; + public static ArrayList clients = new ArrayList<>(); + public static ArrayList bots = new ArrayList<>(); + public static ArrayList manager = new ArrayList<>(); + public static int currentBot =0; + public static ArrayList onlineclients = new ArrayList<>(); + public static long Messageperh = 0; + public static ArrayList guilds = new ArrayList<>(); + + public static void main(String[] args) { + try { + Database.connect(); + for (String Token : managerTokens) { + manager.add(new JDABuilder(AccountType.BOT).setAutoReconnect(true).setToken(Token).addEventListener(new managerListener()).buildAsync()); + } + + Thread.sleep(1500); + + onlinethread.main(); + for (String Token : clienttokens) { + clients.add(new JDABuilder(AccountType.CLIENT).setToken(Token).addEventListener(new onready()).setAutoReconnect(true).buildAsync()); + } + for (String Token : botTokens) { + bots.add(new JDABuilder(AccountType.BOT).setAutoReconnect(true).setToken(Token).buildAsync()); + } + test2.main(); + } catch (Exception e) { + e.printStackTrace(); + } + } } \ No newline at end of file diff --git a/src/main/java/discord/data/mining/SECRETS.java b/src/main/java/discord/data/mining/SECRETS.java new file mode 100644 index 0000000..0f986fb --- /dev/null +++ b/src/main/java/discord/data/mining/SECRETS.java @@ -0,0 +1,45 @@ +package discord.data.mining; + +import java.util.ArrayList; + +/** + * @author Hax + * @time 10:01 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class SECRETS + **/ + +public class SECRETS { + public static ArrayList clienttokens = new ArrayList<>() {{ + add("NDYyNTI0MzE1NjkxMTIyNjg5.DhjJfQ.PTAsNfKWTicXs-7kmF5wvUTA75Q"); + add("NDAwOTM0NTkyODg4MDQ1NTY4.DhAfEA.E2DUMYaTrduN_KVtCVyhoK9CC3I"); + add("NDYxNDEzNTg1NzEzNzU4MjA5.Dhjtqw.Bkl4NLqzxkIv236FhRzEkuDUhiI"); + add("NDYyNjM4MjE3Njc4ODE1MjM0.DhkyOQ.iysUR97o1KqjSui5Top1oHpFOJQ"); + }}; + public static ArrayList botTokens = new ArrayList<>() {{ + add("NDYyNTA3NzQzMzI0OTMwMDUx.Dhi3ag.Nc2kDhoJCgj6hCLM3Bb0hUmGfvw"); + add("NDYyNTQ3OTYwNjMxMTMyMTYx.Dhjc7Q.qeFYt5Op3xJ-TCHuZnM_mscTe2w"); + add("NDYyNTU1NDM5MDI5MDI2ODE2.Dhjj1Q.NyiVkrdIk73p7kaJIZMNx79UGxc"); + add("NDYyNTU1NjUwODEyMDE4Njg5.DhjkCA.sUWSnt9MhO7xg2zEQf5NqZ-41o0"); + add("NDYyNTU2MDU3MTgxNDg3MTA0.Dhjkgw.3tX8m9FTp63c0GbLmZSar-PpkO8"); + add("NDYyOTEwOTQ5Mjc2Mzg1Mjgw.Dhou7Q.Pa-GzDYiY3lfEp9BC_-MUyFs9kE"); + add("NDYyOTExMjA5MzQ4NTMwMTc2.Dhovag.0EPOnxUBJaf6j1Lpd-u01dDFAtE"); + add("NDYyOTExMzQyODAyNzYzNzc2.DhovuA.eBi8xM3cErZA-uNEOBTwYPyiuqc"); + add("NDYyOTExOTYxNzI2ODQ0OTMw.Dhov3w.YbznrvNpphyR3OsE5p7kl1E-Tuc"); + add("NDYyOTEyMTM1MTgyMTU1Nzc2.DhowCA.catECZ6Ghjd18GaYwaWG1o90qOw"); + add("NDYyOTMxMzQ0OTMwODk3OTIw.DhpB7g.oPCmHpopM7OOfelJc-HkmYBf7xo"); + add("NDYyOTMxNDc5ODAyOTM3MzY0.DhpCDQ.MRTSNgfrtZLg117lJRJGoMPL_As"); + add("NDYyOTMxNjI2MzMxMDc4NjU4.DhpCLw.YkI8CQPu7ykwHN7ALEnGp_zV6dg"); + add("NDYyOTMxNzM2MDU0MjAyMzY5.DhpCSg.Eia-HhBIfMCvgm9Dyi9KdOgh5Bc"); + add("NDYyOTMxODY2MjM3MDA5OTIw.DhpCbg.sfPuDPNbjbwUviFXo7j6VrqaIrg"); + add("NDYyOTMzMzk5ODM4MTMwMTg3.DhpD1g.LzTF1QA3UV-TvOMP4wb7AtsIwdo"); + add("NDYyOTMzODE1OTc5OTMzNjk2.DhpEOQ.PiYSzer3H-7ekhmS0VpF-XXjpD4"); + add("NDYyOTM0Mjk0NDI4NjQ3NDM0.DhpEqg.7Ioh3N4dqJ7aB35dOvKUMRdC4mc"); + add("NDYyOTM0MTgwNDg2MDUzODk4.DhpEkQ.5RZ7_F69PywlPp0fNeGSAlEb5a0"); + add("NDYyOTM1NDc3NTMyNzUzOTIx.DhpFxg.Kqe8Fl6PhdE0-pZoIoAgqs4I8Ms"); + }}; + public static ArrayList managerTokens = new ArrayList<>() {{ + add("NDYyNTU3NjMyODA1MzM5MTQ3.Dhj7Xg.bxgNa_DOPpxPAMP1PI3xqvMwS3o"); + }}; +} diff --git a/src/main/java/discord/data/mining/onlinethread.java b/src/main/java/discord/data/mining/onlinethread.java index 01de321..8e33654 100644 --- a/src/main/java/discord/data/mining/onlinethread.java +++ b/src/main/java/discord/data/mining/onlinethread.java @@ -1,20 +1,20 @@ -package discord.data.mining; - -/** - * @author Hax - * @time 12:01 30.06.2018 - * @project Discord-Data-Mining - * @package discord.data.mining - * @class onlinethread - **/ - -public class onlinethread { - public static void main() { - new Thread(() -> { - while (true) { - - } - }); - } - -} +package discord.data.mining; + +/** + * @author Hax + * @time 12:01 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class onlinethread + **/ + +public class onlinethread { + public static void main() { + new Thread(() -> { + while (true) { + + } + }); + } + +} diff --git a/src/main/java/discord/data/mining/sendMessage.java b/src/main/java/discord/data/mining/sendMessage.java index 18be9da..51557ac 100644 --- a/src/main/java/discord/data/mining/sendMessage.java +++ b/src/main/java/discord/data/mining/sendMessage.java @@ -1,106 +1,120 @@ -package discord.data.mining; - -/** - * @author Skidder - * @time 09:11 30.06.2018 - * @project Discord-Data-Mining - * @package discord.data.mining - * @class sendMessage - **/ - -import net.dv8tion.jda.core.EmbedBuilder; -import net.dv8tion.jda.core.JDA; -import net.dv8tion.jda.core.events.Event; -import net.dv8tion.jda.core.events.message.MessageDeleteEvent; -import net.dv8tion.jda.core.events.message.MessageReceivedEvent; -import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent; -import net.dv8tion.jda.core.events.message.react.MessageReactionRemoveEvent; - -import java.time.Instant; - -public class sendMessage { - public static void sendMessage(Event inputevent) { - try { - JDA BOT = Main.bots.get(Main.currentBot); - Main.currentBot++; - if (Main.currentBot == Main.bots.size()) Main.currentBot = 0; - if (inputevent instanceof MessageReceivedEvent) { - MessageReceivedEvent event = (MessageReceivedEvent) inputevent; - if (!event.getGuild().getId().equals("448554629282922527")) { - BOT.getTextChannelById(Main.MessageLog) - .sendMessage( - new EmbedBuilder() - .setAuthor(event.getAuthor().getName(), "https://discordapp.com/channels/@me/" + event.getAuthor().getId() + "/", event.getAuthor().getAvatarUrl()).setColor(65280) - .setTitle("New Message", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") - .setDescription("**Message Content:**\n" + event.getMessage().getContentRaw()) - .setThumbnail(event.getGuild().getIconUrl()) - .addField("Guild Name", event.getGuild().getName(), true) - .addField("Guild ID", event.getGuild().getId(), true) - .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) - .addField("Channel Name", "#" + event.getChannel().getName(), true) - .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) - .setTimestamp(Instant.now()) - .build() - ).queue(); - } - } else if (inputevent instanceof MessageDeleteEvent) { - MessageDeleteEvent event = (MessageDeleteEvent) inputevent; - if (!event.getGuild().getId().equals("448554629282922527")) { - BOT.getTextChannelById(Main.MessageLog) - .sendMessage( - new EmbedBuilder() - .setColor(16711680) - .setTitle("Message deleted", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") - .setThumbnail(event.getGuild().getIconUrl()) - .addField("Guild Name", event.getGuild().getName(), true) - .addField("Guild ID", event.getGuild().getId(), true) - .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) - .addField("Channel Name", "#" + event.getChannel().getName(), true) - .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) - .setTimestamp(Instant.now()) - .build() - ).queue(); - } - } else if (inputevent instanceof MessageReactionAddEvent) { - MessageReactionAddEvent event = (MessageReactionAddEvent) inputevent; - if (!event.getGuild().getId().equals("448554629282922527")) { - BOT.getTextChannelById(Main.ReactionLog) - .sendMessage( - new EmbedBuilder() - .setAuthor(event.getMember().getUser().getName(), "https://discordapp.com/channels/@me/" + event.getMember().getUser().getId() + "/", event.getMember().getUser().getAvatarUrl()).setColor(65280) - .setTitle("Reaction Add", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") - .setThumbnail(event.getGuild().getIconUrl()) - .setDescription("**Emoji:**\n" + event.getReactionEmote().getEmote().getAsMention()) - .addField("Guild Name", event.getGuild().getName(), true) - .addField("Guild ID", event.getGuild().getId(), true) - .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) - .addField("Channel Name", "#" + event.getChannel().getName(), true) - .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) - .setTimestamp(Instant.now()) - .build() - ).queue(); - } - } else if (inputevent instanceof MessageReactionRemoveEvent) { - MessageReactionRemoveEvent event = (MessageReactionRemoveEvent) inputevent; - if (!event.getGuild().getId().equals("448554629282922527")) { - BOT.getTextChannelById(Main.ReactionLog) - .sendMessage( - new EmbedBuilder() - .setAuthor(event.getMember().getUser().getName(), "https://discordapp.com/channels/@me/" + event.getMember().getUser().getId() + "/", event.getMember().getUser().getAvatarUrl()).setColor(16711680) - .setTitle("Reaction Remove", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") - .setThumbnail(event.getGuild().getIconUrl()) - .setDescription("**Emoji:**\n" + event.getReactionEmote().getEmote().getAsMention()) - .addField("Guild Name", event.getGuild().getName(), true) - .addField("Guild ID", event.getGuild().getId(), true) - .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) - .addField("Channel Name", "#" + event.getChannel().getName(), true) - .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) - .setTimestamp(Instant.now()) - .build() - ).queue(); - } - } - } catch (Exception ignore) { - } - } +package discord.data.mining; + +/** + * @author Skidder + * @time 09:11 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class sendMessage + **/ + +import net.dv8tion.jda.core.EmbedBuilder; +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.entities.Message; +import net.dv8tion.jda.core.events.Event; +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; +import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.core.events.message.react.MessageReactionRemoveEvent; + +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.util.Calendar; + +import static com.rethinkdb.RethinkDB.r; + +public class sendMessage { + public static void sendMessage(Event inputevent) { + try { + JDA BOT = Main.bots.get(Main.currentBot); + Main.currentBot++; + if (Main.currentBot == Main.bots.size()) Main.currentBot = 0; + if (inputevent instanceof MessageReceivedEvent) { + MessageReceivedEvent event = (MessageReceivedEvent) inputevent; + if (!event.getGuild().getId().equals("448554629282922527")) { + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String time = sdf.format(cal.getTime()); + r.table("messages").insert( + r.hashMap("MessageID", event.getMessage().getIdLong()) + .with("AuthorID", event.getAuthor().getIdLong()) + .with("GuildID", event.getGuild().getIdLong()) + .with("Content", event.getMessage().getContentRaw()) + .with("Time", time) + ).run(Database.getConn()); + BOT.getTextChannelById(Main.MessageLog) + .sendMessage( + new EmbedBuilder() + .setAuthor(event.getAuthor().getName(), "https://discordapp.com/channels/@me/" + event.getAuthor().getId() + "/", event.getAuthor().getAvatarUrl()).setColor(65280) + .setTitle("New Message", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") + .setDescription("**Message Content:**\n" + event.getMessage().getContentRaw()) + .setThumbnail(event.getGuild().getIconUrl()) + .addField("Guild Name", event.getGuild().getName(), true) + .addField("Guild ID", event.getGuild().getId(), true) + .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) + .addField("Channel Name", "#" + event.getChannel().getName(), true) + .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) + .setTimestamp(Instant.now()) + .build() + ).queue(); + } + } else if (inputevent instanceof MessageReactionAddEvent) { + MessageReactionAddEvent event = (MessageReactionAddEvent) inputevent; + if (!event.getGuild().getId().equals("448554629282922527")) { + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String time = sdf.format(cal.getTime()); + event.getTextChannel().getMessageById(event.getMessageId()).queue( + msg -> { + StringBuilder reactions = new StringBuilder(); + msg.getReactions().forEach(messageReaction -> reactions.append(messageReaction.getReactionEmote().getName()+" ("+messageReaction.getCount()+")")); + r.table("reactionadd").insert( + r.hashMap("MessageID", msg.getIdLong()) + .with("AuthorID", msg.getIdLong()) + .with("GuildID", event.getGuild().getIdLong()) + .with("Content", msg.getContentRaw()) + .with("Time", time) + .with("NewReaction", event.getReaction().getReactionEmote().getName()) + .with("Reactions", reactions.toString()) + ).run(Database.getConn()); + } + ); + BOT.getTextChannelById(Main.ReactionLog) + .sendMessage( + new EmbedBuilder() + .setAuthor(event.getMember().getUser().getName(), "https://discordapp.com/channels/@me/" + event.getMember().getUser().getId() + "/", event.getMember().getUser().getAvatarUrl()).setColor(65280) + .setTitle("Reaction Add", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") + .setThumbnail(event.getGuild().getIconUrl()) + .setDescription("**Emoji:**\n" + event.getReactionEmote().getEmote().getAsMention()) + .addField("Guild Name", event.getGuild().getName(), true) + .addField("Guild ID", event.getGuild().getId(), true) + .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) + .addField("Channel Name", "#" + event.getChannel().getName(), true) + .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) + .setTimestamp(Instant.now()) + .build() + ).queue(); + } + } else if (inputevent instanceof MessageReactionRemoveEvent) { + MessageReactionRemoveEvent event = (MessageReactionRemoveEvent) inputevent; + if (!event.getGuild().getId().equals("448554629282922527")) { + BOT.getTextChannelById(Main.ReactionLog) + .sendMessage( + new EmbedBuilder() + .setAuthor(event.getMember().getUser().getName(), "https://discordapp.com/channels/@me/" + event.getMember().getUser().getId() + "/", event.getMember().getUser().getAvatarUrl()).setColor(16711680) + .setTitle("Reaction Remove", "https://canary.discordapp.com/channels/" + event.getGuild().getId() + "/") + .setThumbnail(event.getGuild().getIconUrl()) + .setDescription("**Emoji:**\n" + event.getReactionEmote().getEmote().getAsMention()) + .addField("Guild Name", event.getGuild().getName(), true) + .addField("Guild ID", event.getGuild().getId(), true) + .addField("Guild Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator(), true) + .addField("Channel Name", "#" + event.getChannel().getName(), true) + .setFooter(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl()) + .setTimestamp(Instant.now()) + .build() + ).queue(); + } + } + } catch (Exception ignore) { + } + } } \ No newline at end of file diff --git a/src/main/java/discord/data/mining/test.java b/src/main/java/discord/data/mining/test.java new file mode 100644 index 0000000..b0d5fc2 --- /dev/null +++ b/src/main/java/discord/data/mining/test.java @@ -0,0 +1,95 @@ +package discord.data.mining; + +import javax.swing.*; +import java.awt.*; +import java.awt.font.FontRenderContext; +import java.awt.font.LineMetrics; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Line2D; + +/** + * @author Hax + * @time 12:46 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class test + **/ + +public class test extends JPanel { + + int[] data = { + 21, 14, 18, 03, 86, 88, 74, 87, 54, 77, + 61, 55, 48, 60, 49, 36, 38, 27, 20, 18 + }; + final int PAD = 20; + + protected void paintComponent(Graphics g) { + super.paintComponent(g); + Graphics2D g2 = (Graphics2D)g; + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + int w = getWidth(); + int h = getHeight(); + // Draw ordinate. + g2.draw(new Line2D.Double(PAD, PAD, PAD, h-PAD)); + // Draw abcissa. + g2.draw(new Line2D.Double(PAD, h-PAD, w-PAD, h-PAD)); + // Draw labels. + Font font = g2.getFont(); + FontRenderContext frc = g2.getFontRenderContext(); + LineMetrics lm = font.getLineMetrics("0", frc); + float sh = lm.getAscent() + lm.getDescent(); + // Ordinate label. + String s = "data"; + float sy = PAD + ((h - 2*PAD) - s.length()*sh)/2 + lm.getAscent(); + for(int i = 0; i < s.length(); i++) { + String letter = String.valueOf(s.charAt(i)); + float sw = (float)font.getStringBounds(letter, frc).getWidth(); + float sx = (PAD - sw)/2; + g2.drawString(letter, sx, sy); + sy += sh; + } + // Abcissa label. + s = "x axis"; + sy = h - PAD + (PAD - sh)/2 + lm.getAscent(); + float sw = (float)font.getStringBounds(s, frc).getWidth(); + float sx = (w - sw)/2; + g2.drawString(s, sx, sy); + // Draw lines. + double xInc = (double)(w - 2*PAD)/(data.length-1); + double scale = (double)(h - 2*PAD)/getMax(); + g2.setPaint(Color.green.darker()); + for(int i = 0; i < data.length-1; i++) { + double x1 = PAD + i*xInc; + double y1 = h - PAD - scale*data[i]; + double x2 = PAD + (i+1)*xInc; + double y2 = h - PAD - scale*data[i+1]; + g2.draw(new Line2D.Double(x1, y1, x2, y2)); + } + // Mark data points. + g2.setPaint(Color.red); + for(int i = 0; i < data.length; i++) { + double x = PAD + i*xInc; + double y = h - PAD - scale*data[i]; + g2.fill(new Ellipse2D.Double(x-2, y-2, 4, 4)); + } + } + + private int getMax() { + int max = -Integer.MAX_VALUE; + for(int i = 0; i < data.length; i++) { + if(data[i] > max) + max = data[i]; + } + return max; + } + + public static void main(String[] args) { + JFrame f = new JFrame(); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.add(new test()); + f.setSize(400,400); + f.setLocation(200,200); + f.setVisible(true); + } +} diff --git a/src/main/java/discord/data/mining/test2.java b/src/main/java/discord/data/mining/test2.java new file mode 100644 index 0000000..acdb48f --- /dev/null +++ b/src/main/java/discord/data/mining/test2.java @@ -0,0 +1,143 @@ +package discord.data.mining; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.font.FontRenderContext; +import java.awt.font.LineMetrics; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Line2D; +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.*; + +/** + * @author Hax + * @time 12:52 30.06.2018 + * @project Cryptix-Data-Mining + * @package discord.data.mining + * @class test2 + **/ + +public class test2 { + + public static void main() { + + Thread diagramm = new Thread(() -> { + TimerTask timerTask = new TimerTask() { + @Override + public void run() { + Date date = new Date(); + Calendar calendar = GregorianCalendar.getInstance(); + calendar.setTime(date); + if (calendar.get(Calendar.MINUTE)==0) { + try { + FileReader fr = new FileReader("stats.txt"); + BufferedReader br = new BufferedReader(fr); + + String zeile = ""; + StringBuilder stringBuilder = new StringBuilder(); + while ((zeile = br.readLine()) != null) { + stringBuilder.append(zeile); + } + br.close(); + + String[] stats = stringBuilder.toString().split(" "); + String statsstring = stringBuilder.toString(); + statsstring = statsstring.replaceFirst(stats[0]+" ", ""); + statsstring = statsstring+" "+Main.Messageperh; + FileWriter fw = new FileWriter("stats.txt"); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(statsstring); + bw.close(); + Main.Messageperh =0; + + } catch (Exception e) { + e.printStackTrace(); + } + } + if (calendar.get(Calendar.HOUR_OF_DAY)==0&&calendar.get(Calendar.MINUTE)==0) { + try { + FileReader fr = new FileReader("stats.txt"); + BufferedReader br = new BufferedReader(fr); + + String zeile = ""; + StringBuilder stringBuilder = new StringBuilder(); + while ((zeile = br.readLine()) != null) { + stringBuilder.append(zeile); + } + br.close(); + String[] datas = stringBuilder.toString().split(" "); + ArrayList data = new ArrayList<>(); + for (String dataa:datas) { + data.add(Integer.parseInt(dataa)); + } + int max = -Integer.MAX_VALUE; + for(int i = 0; i < data.size(); i++) { + if(data.get(i) > max) + max = data.get(i); + } + BufferedImage bufferedImage = ImageIO.read(new File("Diagramm.jpg")); + Graphics2D g2 = bufferedImage.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + int w = bufferedImage.getWidth(); + int h = bufferedImage.getHeight(); + // Draw ordinate. + g2.draw(new Line2D.Double(24, 24, 24, h - 24)); + // Draw abcissa. + g2.draw(new Line2D.Double(24, h - 24, w - 24, h - 24)); + // Draw labels. + Font font = g2.getFont(); + FontRenderContext frc = g2.getFontRenderContext(); + LineMetrics lm = font.getLineMetrics("0", frc); + float sh = lm.getAscent() + lm.getDescent(); + // Ordinate label. + String s = "data"; + float sy = 24 + ((h - 2 * 24) - s.length() * sh) / 2 + lm.getAscent(); + for (int i = 0; i < s.length(); i++) { + String letter = String.valueOf(s.charAt(i)); + float sw = (float) font.getStringBounds(letter, frc).getWidth(); + float sx = (24 - sw) / 2; + g2.drawString(letter, sx, sy); + sy += sh; + } + // Abcissa label. + s = "x axis"; + sy = h - 24 + (24 - sh) / 2 + lm.getAscent(); + float sw = (float) font.getStringBounds(s, frc).getWidth(); + float sx = (w - sw) / 2; + g2.drawString(s, sx, sy); + // Draw lines. + double xInc = (double) (w - 2 * 24) / (data.size() - 1); + double scale = (double) (h - 2 * 24) / max; + g2.setPaint(Color.green.darker()); + for (int i = 0; i < data.size() - 1; i++) { + double x1 = 24 + i * xInc; + double y1 = h - 24 - scale * data.get(i); + double x2 = 24 + (i + 1) * xInc; + double y2 = h - 24 - scale * data.get(i + 1); + g2.draw(new Line2D.Double(x1, y1, x2, y2)); + } + // Mark data points. + g2.setPaint(Color.red); + for (int i = 0; i < data.size(); i++) { + double x = 24 + i * xInc; + double y = h - 24 - scale * data.get(i); + g2.fill(new Ellipse2D.Double(x - 2, y - 2, 4, 4)); + } + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ImageIO.write(bufferedImage, "jpg", os); + Main.manager.get(0).getTextChannelById("462534066869370882").sendFile(new ByteArrayInputStream(os.toByteArray()), "test.jpg").queue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + }; + new Timer().schedule(timerTask, 30000, 60000); + }); + diagramm.start(); + + } + +}