Facebook
From Yamasky, 6 Years ago, written in HTML5.
Embed
Download Paste or View Raw
Hits: 872
  1. package me.yamas.tools.data.mysql;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.UUID;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.Location;
  11.  
  12. import me.yamas.tools.Main;
  13. import me.yamas.tools.objects.User;
  14. import me.yamas.tools.objects.utils.UserUtils;
  15. import me.yamas.tools.utils.Util;
  16.  
  17. public class MySQL {
  18.  
  19.         private static Connection conn;
  20.        
  21.         private static void checkTable(){
  22.                 openConnection();
  23.                 StringBuilder sb = new StringBuilder();
  24.                 sb.append("create table if not exists users(");
  25.                 sb.append("uuid varchar(100) not null,");
  26.                 sb.append("name varchar(50) not null,");
  27.                 sb.append("god int,");
  28.                 sb.append("mute bigint,");
  29.                 sb.append("homeWorld varchar(120),");
  30.                 sb.append("homeX int,");
  31.                 sb.append("homeY int,");
  32.                 sb.append("homeZ int,");
  33.                 sb.append("primary key(uuid));");
  34.                
  35.                 sb.append("create table if not exists bans(");
  36.                 sb.append("uuid varchar(100) not null,");
  37.                 sb.append("victim varchar(50) not null,");
  38.                 sb.append("punisher varchar(100),");
  39.                 sb.append("reason varchar(100),");
  40.                 sb.append("giveDate bigint,");
  41.                 sb.append("deleteDate bigint,");
  42.                 sb.append("primary key(uuid));");
  43.                 try {
  44.                         conn.createStatement().executeUpdate(sb.toString());
  45.                 } catch (SQLException e) {
  46.                         e.printStackTrace();
  47.                 }
  48.             closeConnection();
  49.         }
  50.        
  51.        
  52.         /*
  53.          * USERS
  54.          */
  55.        
  56.         private static void loadUsers() throws SQLException{
  57.                 openConnection();
  58.                 int i = 0;
  59.                 ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM `users`");
  60.                 while(rs.next()){
  61.                         User u = User.get(UUID.fromString(rs.getString(1)));
  62.                         u.setName(rs.getString(2));
  63.                         int hX = rs.getInt(6);
  64.                         int hY = rs.getInt(7);
  65.                         int hZ = rs.getInt(8);
  66.                         String hWorld = rs.getString(5);
  67.                         long mute = rs.getLong(4);
  68.                         u.setHome(new Location(Bukkit.getWorld(hWorld), hX, hY, hZ));
  69.                         u.setMute(mute);
  70.                         u.setGod(rs.getInt(3) == 1 ? true : false);
  71.                         i++;
  72.                        
  73.                 }
  74.                 Util.sendMessage(Bukkit.getConsoleSender(), "&8[&4YamasTools&8] &7Zaladowano &c" + i + " &7graczy!");
  75.                 closeConnection();
  76.         }
  77.        
  78.         private static void saveUsers() throws SQLException{
  79.                 openConnection();
  80.                 int i = 0;
  81.                 for(User u : UserUtils.getUsers()){
  82.                         StringBuilder sb = new StringBuilder();
  83.                         sb.append("INSERT INTO users (uuid, name, god, mute, homeWorld, homeX, homeY, homeZ) VALUES (");
  84.                         sb.append("'" + u.getUUID().toString() +"',");
  85.                         sb.append("'" + u.getName() +"',");
  86.                         sb.append("'" + u.isGod() +"',");
  87.                         sb.append("'" + u.getMute() +"',");
  88.                         sb.append("'" + u.getHome().getWorld().getName() +"',");
  89.                         sb.append("'" + u.getHome().getBlockX() +"',");
  90.                         sb.append("'" + u.getHome().getBlockY() +"',");
  91.                         sb.append("'" + u.getHome().getBlockZ() +"'");
  92.                         sb.append(") ON DUPLICATE KEY UPDATE ");
  93.                         sb.append("name='" + u.getName() +"',");
  94.                         sb.append("god='" + u.isGod() +"',");
  95.                         sb.append("mute='" + u.getMute() +"',");
  96.                         sb.append("homeWorld='" + u.getHome().getWorld().getName() +"',");
  97.                         sb.append("homeX='" + u.getHome().getBlockX() +"',");
  98.                         sb.append("homeY='" + u.getHome().getBlockY() +"',");
  99.                         sb.append("homeZ='" + u.getHome().getBlockZ() +"';");
  100.                         conn.createStatement().executeUpdate(sb.toString());
  101.                         i++;
  102.                 }
  103.                 Util.sendMessage(Bukkit.getConsoleSender(), "&8[&4YamasTools&8] &7Zapisano &c" + i + " &7graczy!");
  104.                 closeConnection();
  105.         }
  106.        
  107.         /*
  108.          * BANS
  109.          */
  110.        
  111.         private static void loadBans() throws SQLException{
  112.                 openConnection();
  113.                 int i = 0;
  114.                 ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM `bans`");
  115.                 while(rs.next()){
  116.                         User u = User.get(UUID.fromString(rs.getString(1)));
  117.                         u.setName(rs.getString(2));
  118.                         u.setPunisher(rs.getString(3));
  119.                         u.setReason(rs.getString(4));
  120.                         u.setBanTime(rs.getLong(4));
  121.                         u.setValidateTill(rs.getLong(5));
  122.                         i++;
  123.                        
  124.                 }
  125.                 Util.sendMessage(Bukkit.getConsoleSender(), "&8[&4YamasTools&8] &7Zaladowano &c" + i + " &7banow!");
  126.                 closeConnection();
  127.         }
  128.        
  129.         private static void saveBans() throws SQLException{
  130.                 openConnection();
  131.                 int i = 0;
  132.                 for(User u : UserUtils.getUsers()){
  133.                         StringBuilder sb = new StringBuilder();
  134.                         sb.append("INSERT INTO bans (uuid, victim, punisher, reason, giveDate, deleteDate) VALUES (");
  135.                         sb.append("'" + u.getUUID().toString() +"',");
  136.                         sb.append("'" + u.getName() +"',");
  137.                         sb.append("'" + u.getPunisher() +"',");
  138.                         sb.append("'" + u.getReason() +"',");
  139.                         sb.append("'" + u.getBanTime() +"',");
  140.                         sb.append("'" + u.getValidateTill() +"'");
  141.                         sb.append(") ON DUPLICATE KEY UPDATE ");
  142.                         sb.append("victim='" + u.getName() +"',");
  143.                         sb.append("punisher='" + u.getPunisher() +"',");
  144.                         sb.append("reason='" + u.getReason() +"',");
  145.                         sb.append("giveDate='" + u.getBanTime() +"',");
  146.                         sb.append("deleteDate='" + u.getValidateTill() +"';");
  147.                         conn.createStatement().executeUpdate(sb.toString());
  148.                         i++;
  149.                 }
  150.                 Util.sendMessage(Bukkit.getConsoleSender(), "&8[&4YamasTools&8] &7Zapisano &c" + i + " &7banow!");
  151.                 closeConnection();
  152.         }
  153.        
  154.         private static synchronized void openConnection(){
  155.                 String host = Main.getInstance().getConfig().getString("mysql.host");
  156.                 int port = Main.getInstance().getConfig().getInt("mysql.port");
  157.                 String database = Main.getInstance().getConfig().getString("mysql.database");
  158.                 String user = Main.getInstance().getConfig().getString("mysql.user");
  159.                 String password = Main.getInstance().getConfig().getString("mysql.password");
  160.                 if(!isConnected()){
  161.                         try{
  162.                                 conn = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?user=" + user + "&password=" + password);
  163.                         } catch(SQLException e){
  164.                                 e.printStackTrace();
  165.                         }
  166.                 }
  167.         }
  168.        
  169.         private static synchronized void closeConnection(){
  170.                 if(isConnected()){
  171.                         try{
  172.                                 conn.close();
  173.                         } catch(SQLException e){
  174.                                 e.printStackTrace();
  175.                         }
  176.                 }
  177.         }
  178.        
  179.         public static boolean isConnected() {
  180.                 try{
  181.                         if(conn == null) return false;
  182.                         if(conn.isClosed()) return false;
  183.                 } catch(SQLException e){
  184.                         e.printStackTrace();
  185.                 }
  186.                 return true;
  187.         }
  188.        
  189. }
  190.