SHARE
TWEET

Untitled

a guest Aug 12th, 2016 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package gilidon.host.menu;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.text.DateFormat;
  8. import java.text.SimpleDateFormat;
  9. import java.util.Date;
  10.  
  11. import org.bukkit.ChatColor;
  12. import org.bukkit.entity.Player;
  13. import gilidon.host.menu.main;
  14.  
  15. public class SQLManager {
  16.     public Connection connection;
  17.     private main plugin;
  18.    
  19.  
  20.     public SQLManager(final main plugin) {
  21.         this.plugin = plugin;
  22.     }
  23.     private void openConnection(){
  24.         try {
  25.             this.connection = DriverManager.getConnection("jdbc:mysql://" + this.plugin.getConfig().getString("MySQL.host") + ":" + this.plugin.getConfig().getString("MySQL.port") + "/" + this.plugin.getConfig().getString("MySQL.database"), new StringBuilder().append(this.plugin.getConfig().getString("MySQL.user")).toString(), new StringBuilder().append(this.plugin.getConfig().getString("MySQL.password")).toString());
  26.         }
  27.         catch (Exception e) {
  28.             e.printStackTrace();
  29.         }
  30.     }
  31.     public void closeConnection(){
  32.         try {
  33.             this.connection.close();
  34.         } catch (Exception e) {
  35.             e.printStackTrace();
  36.         }
  37.     }
  38.     public void initDatabaseFriends(){
  39.         this.openConnection();
  40.         try {
  41.             final PreparedStatement sql = connection.prepareStatement("CREATE TABLE IF NOT EXISTS `Menu` ("
  42.                     + "`ID` INT NOT NULL UNIQUE,"
  43.                     + " `name` varchar(100),"
  44.                     + " `uuid` varchar(100),"
  45.                     + " `region` varchar(100),"
  46.                     + " `friends` text,"
  47.                     + " `balance` INT,"
  48.                     + " `lastseen` varchar(100),"
  49.                     + " `cooldown` INT,"
  50.                     + " `hcooldown` INT,"
  51.                     + " `backpack` MEDIUMTEXT,"
  52.                     + " PRIMARY KEY (`ID`)) ;");
  53.             sql.execute();
  54.             sql.close();
  55.         } catch (Exception e) {
  56.             e.printStackTrace();
  57.             return;
  58.         } finally {
  59.             closeConnection();
  60.         }
  61.     }
  62. //used in player inv
  63.     public Integer getBalance(Player p){
  64.         Integer bal =0;
  65.         @SuppressWarnings({ "deprecation", "static-access" })
  66.         Double balance = plugin.eco.econ.getBalance(p.getName());
  67.         bal = balance.intValue();
  68.         return bal;
  69.     }
  70.  
  71. //used to turn player name to his uuid
  72.     public String getPlayerUUID(String name){
  73.         String uuid = "";
  74.         this.openConnection();
  75.         try{
  76.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu`;");
  77.             ResultSet rs = sql.executeQuery();
  78.             while(rs.next()){
  79.                 if(name.equals(rs.getString("name")) || name.equals("�f"+rs.getString("name"))){
  80.                     uuid = rs.getString("uuid");
  81.                 }
  82.             }
  83.             rs.close();
  84.             sql.close();
  85.         }catch(Exception e){
  86.             e.printStackTrace();
  87.         }finally{
  88.             closeConnection();
  89.         }
  90.         return uuid;
  91.     }
  92.    
  93.     public String getRegionOffline(String uuid){
  94.         String location = null;
  95.         this.openConnection();
  96.         try{
  97.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu` WHERE `uuid` = ?;");
  98.             sql.setString(1,uuid);
  99.             ResultSet rs = sql.executeQuery();
  100.             while(rs.next()){
  101.                 location = rs.getString("region");
  102.             }
  103.             rs.close();
  104.             sql.close();
  105.         }catch(Exception e){
  106.             e.printStackTrace();
  107.         }finally{
  108.             closeConnection();
  109.         }
  110.         return location;
  111.     }
  112. //turn uuid to name; used by friends to name
  113.     public String getPlayerName(String uuid){
  114.         this.openConnection();
  115.         String name ="";
  116.         try{
  117.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `always_online` WHERE `uuid` = ?;");
  118.             sql.setString(1,uuid);
  119.             ResultSet rs = sql.executeQuery();
  120.             while(rs.next()){
  121.                 name = rs.getString("name");
  122.             }
  123.             rs.close();
  124.             sql.close();
  125.         }catch(Exception e){
  126.             e.printStackTrace();
  127.         }finally{
  128.             closeConnection();
  129.         }
  130.         return name;
  131.        
  132.     }
  133.     //used on friendlist
  134.     public String getFriends(Player p){
  135.         openConnection();
  136.         String friends ="";
  137.         try{
  138.             String name = p.getName();
  139.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu` WHERE `name` = ?;");
  140.             sql.setString(1,name);
  141.             ResultSet rs = sql.executeQuery();
  142.             while(rs.next()){
  143.                 friends = rs.getString("friends");
  144.             }
  145.             rs.close();
  146.             sql.close();
  147.         }catch(Exception e){
  148.             e.printStackTrace();
  149.         }finally{
  150.             closeConnection();
  151.         }
  152.         return friends;
  153.        
  154.     }
  155.     //used on friendlist
  156.     public void addFriend(Player p, String frienduuid){
  157.         this.openConnection();
  158.         try{
  159.             String uuid = p.getUniqueId().toString();
  160.             PreparedStatement sql1 = connection.prepareStatement("SELECT * FROM `Menu` WHERE `uuid` = ?;");
  161.             sql1.setString(1,uuid);
  162.             ResultSet rs1 = sql1.executeQuery();
  163.             while (rs1.next()){
  164.                 String friends = rs1.getString("friends");
  165.                 if (friends.contains(frienduuid)){
  166.                     p.sendMessage(ChatColor.RED +"Player is already your friend! ");
  167.                 }
  168.                 else{
  169.                     friends = friends+frienduuid+",";
  170.                     PreparedStatement sql2 = connection.prepareStatement("UPDATE `Menu` SET `friends`=? WHERE `uuid`=?;");
  171.                     sql2.setString(1,friends);
  172.                     sql2.setString(2,uuid);
  173.                     sql2.executeUpdate();
  174.                     sql2.close();
  175.                 }
  176.             }
  177.             rs1.close();
  178.             sql1.close();
  179.  
  180.         }catch(Exception e){
  181.             e.printStackTrace();
  182.         }
  183.         finally{
  184.             closeConnection();
  185.         }
  186.        
  187.     }
  188.     //used on friendlist
  189.     public void removeFriend(Player p, String frienduuid){
  190.         String uuid = getPlayerUUID(p.getName());
  191.         this.openConnection();
  192.         try{
  193.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu` WHERE `uuid`=?;");
  194.             sql.setString(1,uuid);
  195.             ResultSet rs = sql.executeQuery();         
  196.             while(rs.next()){
  197.                 PreparedStatement sql1 = connection.prepareStatement("UPDATE `Menu` SET `friends`=? WHERE `uuid` = ?;");
  198.                 sql1.setString(1,rs.getString("friends").replaceAll(frienduuid+",",""));
  199.                 sql1.setString(2,uuid);
  200.                 sql1.executeUpdate();
  201.                 sql1.close();
  202.             }
  203.             rs.close();
  204.             sql.close();
  205.  
  206.         }catch(Exception e){
  207.             e.printStackTrace();
  208.         }
  209.         finally{
  210.             closeConnection();
  211.         }
  212.     }
  213.    
  214.     //used on settings
  215.     public Integer getPvpCooldown(Player p){
  216.         openConnection();
  217.         Integer cooldown =0;
  218.         try{
  219.             String name = p.getName();
  220.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu` WHERE `name` = ?;");
  221.             sql.setString(1,name);
  222.             ResultSet rs = sql.executeQuery();
  223.             while(rs.next()){
  224.                 cooldown = rs.getInt("cooldown");
  225.             }
  226.             rs.close();
  227.             sql.close();
  228.         }catch(Exception e){
  229.             e.printStackTrace();
  230.         }finally{
  231.             closeConnection();
  232.         }
  233.         return cooldown;
  234.        
  235.     }
  236.    
  237.     public Integer getHomeCooldown(Player p){
  238.         openConnection();
  239.         Integer cooldown =0;
  240.         try{
  241.             String name = p.getName();
  242.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Menu` WHERE `name` = ?;");
  243.             sql.setString(1,name);
  244.             ResultSet rs = sql.executeQuery();
  245.             while(rs.next()){
  246.                 cooldown = rs.getInt("hcooldown");
  247.             }
  248.             rs.close();
  249.             sql.close();
  250.         }catch(Exception e){
  251.             e.printStackTrace();
  252.         }finally{
  253.             closeConnection();
  254.         }
  255.         return cooldown;
  256.        
  257.     }
  258.     //runs once per minute
  259.     public void updateCooldown(){
  260.         openConnection();
  261.         try{
  262.             PreparedStatement sql = connection.prepareStatement
  263.                     ("SELECT * FROM `Menu`;");
  264.             ResultSet rs = sql.executeQuery();
  265.             while(rs.next()){
  266.                 if(rs.getInt("cooldown") > 0){
  267.                     PreparedStatement sql3 = connection.prepareStatement
  268.                             ("UPDATE `Menu` SET `cooldown` =? WHERE `id`=?;");
  269.                     sql3.setInt(1, rs.getInt("cooldown") - 1);
  270.                     sql3.setInt(2, rs.getInt("id"));
  271.                     sql3.executeUpdate();
  272.                     sql3.close();
  273.                 }
  274.                 if(rs.getInt("cooldown") < 0){
  275.                     PreparedStatement sql3 = connection.prepareStatement
  276.                             ("UPDATE `Menu` SET `cooldown` =? WHERE `id`=?;");
  277.                     sql3.setInt(1, 0);
  278.                     sql3.setInt(2, rs.getInt("id"));
  279.                     sql3.executeUpdate();
  280.                     sql3.close();
  281.                 }
  282.                 if(rs.getInt("hcooldown") > 0){
  283.                     PreparedStatement sql3 = connection.prepareStatement
  284.                             ("UPDATE `Menu` SET `hcooldown` =? WHERE `id`=?;");
  285.                     sql3.setInt(1, rs.getInt("hcooldown") - 1);
  286.                     sql3.setInt(2, rs.getInt("id"));
  287.                     sql3.executeUpdate();
  288.                     sql3.close();
  289.                 }
  290.                 if(rs.getInt("hcooldown") < 0){
  291.                     PreparedStatement sql3 = connection.prepareStatement
  292.                             ("UPDATE `Menu` SET `hcooldown` =? WHERE `id`=?;");
  293.                     sql3.setInt(1, 0);
  294.                     sql3.setInt(2, rs.getInt("id"));
  295.                     sql3.executeUpdate();
  296.                     sql3.close();
  297.                 }
  298.             }
  299.             rs.close();
  300.             sql.close();
  301.         }catch(Exception e){
  302.             e.printStackTrace();
  303.         }finally{
  304.         closeConnection();
  305.         }
  306.     }
  307.     //used on settings
  308.     public void setCooldown(Player p){
  309.         openConnection();
  310.         try{
  311.             String name = p.getName();
  312.             PreparedStatement sql1 = connection.prepareStatement("SELECT * FROM `Menu` WHERE `name` = ?;");
  313.             sql1.setString(1,name);
  314.             ResultSet rs1 = sql1.executeQuery();
  315.             while (rs1.next()){
  316.                 String uuid = rs1.getString("uuid");
  317.                 PreparedStatement sql2 = connection.prepareStatement("UPDATE `Menu` SET `cooldown`=? WHERE `uuid`=?;");
  318.                 sql2.setInt(1,5);
  319.                 sql2.setString(2,uuid);
  320.                 sql2.executeUpdate();
  321.                 sql2.close();
  322.                 }
  323.             rs1.close();
  324.             sql1.close();
  325.  
  326.         }catch(Exception e){
  327.             e.printStackTrace();
  328.         }
  329.         finally{
  330.             closeConnection();
  331.         }
  332.        
  333.     }
  334.    
  335.     public void setHomeCooldown(Player p){
  336.         openConnection();
  337.         try{
  338.             String name = p.getName();
  339.             PreparedStatement sql1 = connection.prepareStatement("SELECT * FROM `Menu` WHERE `name` = ?;");
  340.             sql1.setString(1,name);
  341.             ResultSet rs1 = sql1.executeQuery();
  342.             while (rs1.next()){
  343.                 String uuid = rs1.getString("uuid");
  344.                 PreparedStatement sql2 = connection.prepareStatement("UPDATE `Menu` SET `hcooldown`=? WHERE `uuid`=?;");
  345.                 sql2.setInt(1,15);
  346.                 sql2.setString(2,uuid);
  347.                 sql2.executeUpdate();
  348.                 sql2.close();
  349.                 }
  350.             rs1.close();
  351.             sql1.close();
  352.  
  353.         }catch(Exception e){
  354.             e.printStackTrace();
  355.         }
  356.         finally{
  357.             closeConnection();
  358.         }
  359.        
  360.     }
  361.     //used onplayerjoin
  362.     public void insertPlayer(String name){
  363.        
  364.         this.openConnection();
  365.         String uuid="";
  366.         try{
  367.             PreparedStatement sql = connection.prepareStatement("SELECT * FROM `always_online` WHERE `name` = ?;");
  368.             sql.setString(1,name);
  369.             ResultSet rs = sql.executeQuery();
  370.             while(rs.next()){
  371.                 uuid = rs.getString("uuid");
  372.             }
  373.             rs.close();
  374.             sql.close();
  375.         }catch(Exception e){
  376.             e.printStackTrace();
  377.         }
  378.         DateFormat df = new SimpleDateFormat("HH.mm-dd.MM.yyyy");
  379.         String date = df.format(new Date());
  380.         Integer balance = 100;
  381.             try{
  382.                 PreparedStatement sql1 = connection.prepareStatement("SELECT * FROM `Menu` WHERE `uuid` = ?;");
  383.                 sql1.setString(1,uuid);
  384.                 ResultSet rs1 = sql1.executeQuery();
  385.                 if (rs1.next() == false){
  386.                     System.out.print("Player added. "+name+" "+uuid+" "+balance+" "+date);
  387.                     PreparedStatement sql2 = connection.prepareStatement("INSERT INTO `Menu` (`id`, `name`, `uuid`, `friends`, `balance`, `lastseen`) VALUES (?,?,?,?,?,?);");
  388.                     sql2.setInt(1, nextID());
  389.                     sql2.setString(2, name);
  390.                     sql2.setString(3, uuid);
  391.                     sql2.setString(4, "");
  392.                     sql2.setInt(5, balance);
  393.                     sql2.setString(6, date);
  394.                     sql2.execute();
  395.                     sql2.close();
  396.                    
  397.                 }else{
  398.                     while(rs1.next()){
  399.                         System.out.print("name not name");
  400.                         PreparedStatement sql4 = connection.prepareStatement("UPDATE `Menu` SET `name` = ?, `lastseen` = ? WHERE `uuid` =?;");
  401.                         sql4.setString(1, name);
  402.                         sql4.setString(2, date);
  403.                         sql4.setString(3, uuid);
  404.                         sql4.executeUpdate();
  405.                                        
  406.                     }
  407.                 }
  408.                
  409.                 rs1.close();
  410.                 sql1.close();
  411.             }catch(Exception e){
  412.                 e.printStackTrace();
  413.             }finally{
  414.                 closeConnection();
  415.             }
  416.     }
  417.     //used on player quit
  418.     public void updatelastSeen(String name){
  419.         openConnection();
  420.         try{
  421.             DateFormat df = new SimpleDateFormat("HH.mm-dd.MM.yyyy");
  422.             String date = df.format(new Date());
  423.             PreparedStatement sql3 = connection.prepareStatement("UPDATE `Menu` SET `lastseen` =? WHERE `name` =?;");
  424.             sql3.setString(1, date);
  425.             sql3.setString(2, name);
  426.             sql3.executeUpdate();
  427.             sql3.close();
  428.         }catch(Exception e){
  429.             e.printStackTrace();
  430.         }finally{
  431.             closeConnection();
  432.         }
  433.     }
  434.     //used on friendlist
  435.     public String lastseen(String name){
  436.        
  437.         String uuid = getPlayerUUID(name);
  438.         String lastseen ="Never joined the server.";
  439.         this.openConnection();
  440.         try{
  441.             PreparedStatement sql =connection.prepareStatement("SELECT * FROM `Menu`;");
  442.             ResultSet rs = sql.executeQuery();
  443.             while(rs.next()){
  444.                 if (rs.getString("uuid").equals(uuid)){
  445.                     lastseen = rs.getString("lastseen");
  446. // "HH.mm-dd.MM.yyyy
  447.                    
  448.                     DateFormat df = new SimpleDateFormat("HH.mm-dd.MM.yyyy");
  449.                     String date = df.format(new Date());
  450.                     Date d =df.parse(date);
  451.                     Date ld=df.parse(lastseen);
  452.                    
  453.                     long diff = d.getTime() - ld.getTime();
  454.                                        
  455.                     int diffDays = (int) (diff / (24 * 60 * 60 * 1000));
  456.                     int diffhours = (int) (diff / (60 * 60 * 1000));
  457.                     int diffmin = (int) (diff / (60 * 1000));
  458.                    
  459.                     if(diffDays >0){
  460.                         if(diffDays==1){
  461.                             lastseen = "Last seen "+Integer.toString(diffDays)+" day ago.";
  462.                         }else{
  463.                             lastseen = "Last seen "+Integer.toString(diffDays)+" days ago.";
  464.                         }
  465.                     }else{
  466.                         if(diffhours>0){
  467.                             if(diffhours==1){
  468.                                 lastseen = "Last seen "+Integer.toString(diffhours)+" hour ago.";
  469.                             }else{
  470.                                 lastseen = "Last seen "+Integer.toString(diffhours)+" hours ago.";
  471.                             }
  472.                         }else{
  473.                             if(diffmin>0){
  474.                                 if(diffmin==1){
  475.                                     lastseen = "Last seen "+Integer.toString(diffmin)+" minute ago.";
  476.                                 }else{
  477.                                     lastseen = "Last seen "+Integer.toString(diffmin)+" minutes ago.";
  478.                                 }
  479.                             }else{
  480.                                 lastseen = "Less than one minute ago";
  481.                             }
  482.                         }
  483.                     }              
  484.                 }
  485.             }
  486.             rs.close();
  487.             sql.close();
  488.            
  489.         }catch(Exception e){
  490.             e.printStackTrace();
  491.         }finally{
  492.             closeConnection();
  493.         }
  494.        
  495.         return lastseen;
  496.     }
  497.     //used
  498.     public int nextID(){
  499.         int data = 0;
  500.         try{
  501.             PreparedStatement sql = connection.prepareStatement("SELECT `ID` FROM `Menu` ORDER BY `ID` DESC LIMIT 1;");
  502.             ResultSet rs = sql.executeQuery();
  503.             if(rs.next()){
  504.                 data = rs.getInt("id") + 1;
  505.             }
  506.             rs.close();
  507.             sql.close();
  508.         }catch(Exception e){
  509.             e.printStackTrace();
  510.         }
  511.         return data;
  512.     }
  513.  
  514. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top