Advertisement
Guest User

Untitled

a guest
May 15th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.28 KB | None | 0 0
  1. package me.xcraftrayx.pl;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.io.Writer;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.sql.Statement;
  14. import java.sql.Timestamp;
  15. import java.util.LinkedList;
  16. import java.util.List;
  17. import java.util.Scanner;
  18. import java.util.StringTokenizer;
  19.  
  20. public class MySQL {
  21.  
  22.     private static Connection conn;
  23.     private static Statement stat;
  24.     private static String password, password2, host, host2, user, user2, database, database2, port, port2;
  25.    
  26.     public static final String DRIVER = "com.mysql.jdbc.Driver";
  27.    
  28.     public static void start()
  29.     {
  30.         File katalog = new File("plugins/OnlineTimeInServers/");
  31.         if(!katalog.exists())
  32.         {
  33.             katalog.mkdirs();
  34.         }
  35.         File config = new File("plugins/OnlineTimeInServers/config.yml");
  36.         if(!config.exists())
  37.         {
  38.             try
  39.             {
  40.                 config.createNewFile();
  41.                 Writer writer = new BufferedWriter(new FileWriter(config));
  42.                 ((BufferedWriter)writer).write("config:");      ((BufferedWriter)writer).newLine();
  43.                 ((BufferedWriter)writer).write("  MySQL:");     ((BufferedWriter)writer).newLine();
  44.                 ((BufferedWriter)writer).write("    HOST: localhost");  ((BufferedWriter)writer).newLine();
  45.                 ((BufferedWriter)writer).write("    USER: root");   ((BufferedWriter)writer).newLine();
  46.                 ((BufferedWriter)writer).write("    PASS: password");   ((BufferedWriter)writer).newLine();
  47.                 ((BufferedWriter)writer).write("    DATABASE: MineS");  ((BufferedWriter)writer).newLine();
  48.                 ((BufferedWriter)writer).write("    PORT: 3306");   ((BufferedWriter)writer).newLine();
  49.                 ((BufferedWriter)writer).close();
  50.             }
  51.             catch (IOException e)
  52.             {
  53.                 e.printStackTrace();
  54.             }
  55.         }
  56.         StringTokenizer token;
  57.         try
  58.         {
  59.         @SuppressWarnings("resource")
  60.         Scanner odczyt = new Scanner(config);
  61.         while(odczyt.hasNextLine()){
  62.             token = new StringTokenizer(odczyt.nextLine(),":");
  63.             while(token.hasMoreElements()){
  64.                 String st = String.valueOf(token.nextToken());
  65.                 if(st.equals("    PASS")){
  66.                     password = token.nextToken();
  67.                     password2 = password.replace(" ", "");
  68.                 }
  69.                 if(st.equals("    HOST")){
  70.                     host = token.nextToken();
  71.                     host2 = host.replace(" ", "");
  72.                 }
  73.                 if(st.equals("    USER")){
  74.                     user = token.nextToken();
  75.                     user2 = user.replace(" ", "");
  76.                 }
  77.                 if(st.equals("    DATABASE")){
  78.                     database = token.nextToken();
  79.                     database2 = database.replace(" ", "");
  80.                 }
  81.                 if(st.equals("    PORT")){
  82.                     port = token.nextToken();
  83.                     port2 = port.replace(" ", "");
  84.                 }
  85.                 }
  86.             }
  87.         }
  88.  
  89.         catch (IOException e)
  90.         {
  91.             e.printStackTrace();
  92.         }
  93.  
  94.         try
  95.         {
  96.             Class.forName(MySQL.DRIVER);
  97.         }
  98.         catch (ClassNotFoundException e1)
  99.         {
  100.             System.err.println("Brak sterownika JDBC");
  101.             e1.printStackTrace();
  102.         }
  103.  
  104.         try
  105.         {
  106.             conn = DriverManager.getConnection("jdbc:mysql://" + host2 + ":" + port2 + "/" + database2 + "?autoReconnect=true" + "&user=" + user2 + "&password=" + password2);
  107.             stat = conn.createStatement();
  108.         } catch (SQLException e)
  109.         {
  110.             System.err.println("Problem z otwarciem polaczenia");
  111.             e.printStackTrace();
  112.         }
  113.         MySQL.createTables();
  114.     }
  115.    
  116.       public static boolean createTables()
  117.       {
  118.           String createTable = "CREATE TABLE IF NOT EXISTS BungeeAllServers (id INTEGER AUTO_INCREMENT, Servers varchar(11), PRIMARY KEY(id))";
  119.           String createTable2 = "CREATE TABLE IF NOT EXISTS BungeeTimeInServer (id INTEGER AUTO_INCREMENT, NickID int(11), ServerID int(11), Time int(11), PRIMARY KEY(id))";
  120.       try
  121.       {
  122.           stat.execute(createTable);
  123.           stat.execute(createTable2);
  124.       } catch (SQLException e)
  125.       {
  126.           System.err.println("Blad przy tworzeniu tabeli");
  127.           e.printStackTrace();
  128.           return false;
  129.       }
  130.         return true;
  131.       }
  132.      
  133.       public static boolean addUser(String username, String server, int time)
  134.       {
  135.             try {
  136.                 PreparedStatement prepStmt = conn.prepareStatement("INSERT INTO BungeeTimeInServer (NickID, ServerID, Time) VALUES ((SELECT ID FROM LobbyInventory WHERE username = '" + username + "'), (SELECT ID FROM BungeeAllServers WHERE Servers = '" + server + "'), " + time + ");");
  137.                 prepStmt.execute();
  138.             } catch (SQLException e) {
  139.                 System.err.println("Blad przy wstawianiu uzytkownika");
  140.                 e.printStackTrace();
  141.                 return false;
  142.             }
  143.             return true;
  144.       }
  145.      
  146.         public static boolean updateUser(String username, String server, int time) {
  147.             try {
  148.                 PreparedStatement prepStmt = conn.prepareStatement("UPDATE BungeeTimeInServer SET (NickID, ServerID, Time) VALUES ((SELECT ID FROM LobbyInventory WHERE username = '" + username + "'), (SELECT ID FROM BungeeAllServers WHERE Servers = '" + server + "'), "+ time +");");
  149.                 prepStmt.execute();
  150.             } catch (SQLException e) {
  151.                 System.err.println("Blad przy aktualizowaniu uzytkownika");
  152.                 e.printStackTrace();
  153.                 return false;
  154.             }
  155.             return true;
  156.         }
  157.        
  158.           public static List<String> selectUser(String username, String server) {
  159.                 List<String> users = new LinkedList<String>();
  160.                     try {
  161.                         ResultSet result = stat.executeQuery("SELECT NickID, ServerID FROM BungeeTimeInServer inner join LobbyInventory on BungeeTimeInServer.NickID = LobbyInventory.ID join BungeeAllServers on BungeeTimeInServer.ServerID = BungeeAllServers.id WHERE BungeeAllServers.Servers = '" + server + "' AND LobbyInventory.username = '" + username + "';");
  162.                         while(result.next()) {
  163.                             username = result.getString("NickID");
  164.                             server = result.getString("ServerID");
  165.                             users.add(username);
  166.                             users.add(server);
  167.                         }
  168.                     } catch (SQLException e) {
  169.                         e.printStackTrace();
  170.                         return null;
  171.                     }
  172.                     return users;
  173.           }
  174.      
  175.       public static void closeConnection()
  176.       {
  177.           try
  178.           {
  179.               conn.close();
  180.           } catch (SQLException e)
  181.           {
  182.               System.err.println("Problem z zamknieciem polaczenia");
  183.               e.printStackTrace();
  184.           }
  185.       }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement