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/out/artifacts/Cryptix_Data_Mining_jar/Cryptix-Data-Mining.jar b/out/artifacts/Cryptix_Data_Mining_jar/Cryptix-Data-Mining.jar
new file mode 100644
index 0000000..0bfbfb0
Binary files /dev/null and b/out/artifacts/Cryptix_Data_Mining_jar/Cryptix-Data-Mining.jar differ
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();
+
+ }
+
+}
diff --git a/target/classes/discord/data/mining/Database.class b/target/classes/discord/data/mining/Database.class
new file mode 100644
index 0000000..1c17cda
Binary files /dev/null and b/target/classes/discord/data/mining/Database.class differ
diff --git a/target/classes/discord/data/mining/Listener/eventListener.class b/target/classes/discord/data/mining/Listener/eventListener.class
new file mode 100644
index 0000000..2a11155
Binary files /dev/null and b/target/classes/discord/data/mining/Listener/eventListener.class differ
diff --git a/target/classes/discord/data/mining/Listener/managerListener.class b/target/classes/discord/data/mining/Listener/managerListener.class
new file mode 100644
index 0000000..f393278
Binary files /dev/null and b/target/classes/discord/data/mining/Listener/managerListener.class differ
diff --git a/target/classes/discord/data/mining/Listener/onready.class b/target/classes/discord/data/mining/Listener/onready.class
new file mode 100644
index 0000000..03e58bf
Binary files /dev/null and b/target/classes/discord/data/mining/Listener/onready.class differ
diff --git a/target/classes/discord/data/mining/Logger.class b/target/classes/discord/data/mining/Logger.class
new file mode 100644
index 0000000..88df0d6
Binary files /dev/null and b/target/classes/discord/data/mining/Logger.class differ
diff --git a/target/classes/discord/data/mining/Main.class b/target/classes/discord/data/mining/Main.class
new file mode 100644
index 0000000..8d712e0
Binary files /dev/null and b/target/classes/discord/data/mining/Main.class differ
diff --git a/target/classes/discord/data/mining/SECRETS$1.class b/target/classes/discord/data/mining/SECRETS$1.class
new file mode 100644
index 0000000..943c9e9
Binary files /dev/null and b/target/classes/discord/data/mining/SECRETS$1.class differ
diff --git a/target/classes/discord/data/mining/SECRETS$2.class b/target/classes/discord/data/mining/SECRETS$2.class
new file mode 100644
index 0000000..c1140dd
Binary files /dev/null and b/target/classes/discord/data/mining/SECRETS$2.class differ
diff --git a/target/classes/discord/data/mining/SECRETS$3.class b/target/classes/discord/data/mining/SECRETS$3.class
new file mode 100644
index 0000000..75563be
Binary files /dev/null and b/target/classes/discord/data/mining/SECRETS$3.class differ
diff --git a/target/classes/discord/data/mining/SECRETS.class b/target/classes/discord/data/mining/SECRETS.class
new file mode 100644
index 0000000..539b5a0
Binary files /dev/null and b/target/classes/discord/data/mining/SECRETS.class differ
diff --git a/target/classes/discord/data/mining/onlinethread.class b/target/classes/discord/data/mining/onlinethread.class
new file mode 100644
index 0000000..64c17db
Binary files /dev/null and b/target/classes/discord/data/mining/onlinethread.class differ
diff --git a/target/classes/discord/data/mining/sendMessage.class b/target/classes/discord/data/mining/sendMessage.class
new file mode 100644
index 0000000..94daf56
Binary files /dev/null and b/target/classes/discord/data/mining/sendMessage.class differ
diff --git a/target/classes/discord/data/mining/test.class b/target/classes/discord/data/mining/test.class
new file mode 100644
index 0000000..bc25a51
Binary files /dev/null and b/target/classes/discord/data/mining/test.class differ
diff --git a/target/classes/discord/data/mining/test2$1.class b/target/classes/discord/data/mining/test2$1.class
new file mode 100644
index 0000000..8bc867e
Binary files /dev/null and b/target/classes/discord/data/mining/test2$1.class differ
diff --git a/target/classes/discord/data/mining/test2.class b/target/classes/discord/data/mining/test2.class
new file mode 100644
index 0000000..5fc8efd
Binary files /dev/null and b/target/classes/discord/data/mining/test2.class differ