Advertisement
Guest User

Untitled

a guest
Feb 14th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.97 KB | None | 0 0
  1. package org.code2code.discordbot;
  2.  
  3. import sx.blah.discord.api.ClientBuilder;
  4. import sx.blah.discord.api.IDiscordClient;
  5. import sx.blah.discord.api.events.Event;
  6. import sx.blah.discord.api.events.EventDispatcher;
  7. import sx.blah.discord.api.events.IListener;
  8. import sx.blah.discord.handle.impl.events.MessageReceivedEvent;
  9. import sx.blah.discord.handle.obj.IChannel;
  10. import sx.blah.discord.handle.obj.IMessage;
  11. import sx.blah.discord.handle.obj.IUser;
  12. import sx.blah.discord.util.DiscordException;
  13. import sx.blah.discord.util.MissingPermissionsException;
  14. import sx.blah.discord.util.RateLimitException;
  15.  
  16. import java.sql.*;
  17. import java.util.UUID;
  18.  
  19. public class Main {
  20.  
  21.     public static IDiscordClient CLIENT;
  22.  
  23.  
  24.     public static Connection connection;
  25.  
  26.     public static void main(String[] args) {
  27.  
  28.         try {
  29.             Class.forName("com.mysql.jdbc.Driver");
  30.         } catch (ClassNotFoundException e) {
  31.             e.printStackTrace();
  32.         }
  33.  
  34.         try {
  35.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/botdiscord", "root", "");
  36.         } catch (SQLException e) {
  37.             e.printStackTrace();
  38.         }
  39.  
  40.         try {
  41.             System.out.println(connection.isClosed());
  42.         } catch (SQLException e) {
  43.             e.printStackTrace();
  44.         }
  45.  
  46.  
  47.         CLIENT = createClient("Mjc2NDY1OTk5ODQxMzI5MTUy.C3QIZQ.YMlN8a_3F3aROCbO-zZU7g8dRoQ", true);
  48.  
  49.  
  50.         new Thread(new Runnable() {
  51.  
  52.             public void run() {
  53.                 try {
  54.                     Thread.sleep(5000);
  55.                 } catch (InterruptedException e) {
  56.                     e.printStackTrace();
  57.                 }
  58.  
  59.                 for (IChannel iChannel : CLIENT.getChannels()) {
  60.                     if (iChannel.getID().equals("276340971137007627")) {
  61.                         for (IMessage iMessage : iChannel.getMessages()) {
  62.                             try {
  63.                                 iMessage.delete();
  64.                             } catch (MissingPermissionsException e) {
  65.                                 e.printStackTrace();
  66.                             } catch (RateLimitException e) {
  67.                                 e.printStackTrace();
  68.                             } catch (DiscordException e) {
  69.                                 e.printStackTrace();
  70.                             }
  71.                         }
  72.                     }
  73.                 }
  74.  
  75.             }
  76.         }).start();
  77.  
  78.         EventDispatcher dispatcher = CLIENT.getDispatcher();
  79.         dispatcher.registerListener(new IListener() {
  80.             public void handle(Event event) {
  81.                 //System.out.println(event.toString());
  82.                 if (event instanceof MessageReceivedEvent) {
  83.                     MessageReceivedEvent e       = ((MessageReceivedEvent) event);
  84.                     IMessage             message = e.getMessage();
  85.                     IUser                author  = message.getAuthor();
  86.                     IChannel             channel = message.getChannel();
  87.  
  88.                     if (author.getName().equals(channel.getName())) {
  89.                         System.out.println("Recive message: ");
  90.                         System.out.println(" - Author: " + author.getName());
  91.                         System.out.println(" - Channel: " + channel.getName());
  92.                         System.out.println(" - Message: " + message.getContent());
  93.  
  94.                         String[] args = message.getContent().split(" ");
  95.  
  96.                         if (args[0].equalsIgnoreCase("!confirmtoken") && args.length == 2) {
  97.  
  98.                             User user = getUser(author);
  99.  
  100.                             String entry = args[1].toLowerCase();
  101.  
  102.                             if (user.used) {
  103.                                 try {
  104.                                     channel.sendMessage(":raised_hand: Your account is already verified");
  105.                                 } catch (MissingPermissionsException e1) {
  106.                                     e1.printStackTrace();
  107.                                 } catch (RateLimitException e1) {
  108.                                     e1.printStackTrace();
  109.                                 } catch (DiscordException e1) {
  110.                                     e1.printStackTrace();
  111.                                 }
  112.                                 return;
  113.                             }
  114.  
  115.  
  116.                             if (entry.equals(user.personalToken)) {
  117.                                 try {
  118.                                     channel.sendMessage(":white_check_mark: Your account was verified !");
  119.                                 } catch (MissingPermissionsException e1) {
  120.                                     e1.printStackTrace();
  121.                                 } catch (RateLimitException e1) {
  122.                                     e1.printStackTrace();
  123.                                 } catch (DiscordException e1) {
  124.                                     e1.printStackTrace();
  125.                                 }
  126.  
  127.                                 setUsed(author);
  128.  
  129.  
  130.                             } else {
  131.                                 try {
  132.                                     channel.sendMessage(":no_entry: It's not your private token !");
  133.                                 } catch (MissingPermissionsException e1) {
  134.                                     e1.printStackTrace();
  135.                                 } catch (RateLimitException e1) {
  136.                                     e1.printStackTrace();
  137.                                 } catch (DiscordException e1) {
  138.                                     e1.printStackTrace();
  139.                                 }
  140.                             }
  141.  
  142.                             //"You already have a token, please type: ```!confirmtoken <token>```"
  143.  
  144.                         }
  145.  
  146.                         if (args[0].equalsIgnoreCase("!asktoken")) {
  147.                             try {
  148.  
  149.                                 User user = getUser(author);
  150.  
  151.  
  152.                                 if (!user.used) {
  153.                                     channel.sendMessage("Your token is: **" + user.personalToken + "**");
  154.                                     channel.sendMessage("Please type: ```!confirmtoken <token>```");
  155.                                 } else {
  156.                                     channel.sendMessage("Your token is already used. :cold_sweat:");
  157.                                 }
  158.                             } catch (MissingPermissionsException e1) {
  159.                                 e1.printStackTrace();
  160.                             } catch (RateLimitException e1) {
  161.                                 e1.printStackTrace();
  162.                             } catch (DiscordException e1) {
  163.                                 e1.printStackTrace();
  164.                             }
  165.                         }
  166.                     }
  167.  
  168.  
  169.                 }
  170.             }
  171.         });
  172.  
  173.  
  174.     }
  175.  
  176.     public static IDiscordClient createClient(String token, boolean login) { // Returns a new instance of the Discord client
  177.         ClientBuilder clientBuilder = new ClientBuilder(); // Creates the ClientBuilder instance
  178.         clientBuilder.withToken(token); // Adds the login info to the builder
  179.         try {
  180.             if (login) {
  181.                 return clientBuilder.login(); // Creates the client instance and logs the client in
  182.             } else {
  183.                 return clientBuilder.build(); // Creates the client instance but it doesn't log the client in yet, you would have to call client.login() yourself
  184.             }
  185.         } catch (DiscordException e) { // This is thrown if there was a problem building the client
  186.             e.printStackTrace();
  187.         }
  188.         return null;
  189.     }
  190.  
  191.     public static ResultSet getUserResult(IUser user) {
  192.         try {
  193.             PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM botdiscord.bd_user WHERE userId = ?");
  194.             preparedStatement.setString(1, user.getID());
  195.             return preparedStatement.executeQuery();
  196.         } catch (SQLException e) {
  197.             e.printStackTrace();
  198.         }
  199.         return null;
  200.     }
  201.  
  202.     public static boolean exist(IUser user) {
  203.         try {
  204.             ResultSet resultSet = getUserResult(user);
  205.             boolean   exist     = resultSet.next();
  206.             resultSet.getStatement().close();
  207.             resultSet.close();
  208.             return exist;
  209.         } catch (Exception e) {
  210.             e.printStackTrace();
  211.         }
  212.         return false;
  213.     }
  214.  
  215.     public static void setUsed(IUser user) {
  216.         try {
  217.             PreparedStatement preparedStatement = connection.prepareStatement("UPDATE botdiscord.bd_user SET used = TRUE WHERE userId = ?");
  218.             preparedStatement.setString(1, user.getID());
  219.             preparedStatement.execute();
  220.  
  221.         } catch (SQLException e) {
  222.             e.printStackTrace();
  223.         }
  224.     }
  225.  
  226.     public static User getUser(IUser user) {
  227.  
  228.         if (!exist(user)) {
  229.             try {
  230.                 PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO botdiscord.bd_user (userId, personalToken, date) VALUES(?, ?, ?)");
  231.                 preparedStatement.setString(1, user.getID());
  232.                 preparedStatement.setString(2, UUID.randomUUID().toString().replace("-", ""));
  233.                 preparedStatement.setLong(3, System.currentTimeMillis());
  234.                 preparedStatement.execute();
  235.  
  236.             } catch (SQLException e) {
  237.                 e.printStackTrace();
  238.             }
  239.         }
  240.  
  241.         try {
  242.             ResultSet resultSet = getUserResult(user);
  243.             resultSet.next();
  244.             return new User(resultSet.getInt("internalId"),
  245.                     resultSet.getString("userId"),
  246.                     resultSet.getString("personalToken"),
  247.                     resultSet.getBoolean("used"),
  248.                     resultSet.getLong("date"));
  249.         } catch (Exception e) {
  250.             e.printStackTrace();
  251.         }
  252.  
  253.         return null;
  254.     }
  255.  
  256.  
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement