Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.58 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import java.sql.Statement;
  5. import java.util.HashMap;
  6.  
  7. import org.bukkit.entity.Player;
  8.  
  9. public class StatsManager {
  10.    
  11.     private static Connection con = null;
  12.     private static HashMap<Integer, Integer> kills = new HashMap<>();
  13.     private static HashMap<Integer, Integer> deaths = new HashMap<>();
  14.     private static HashMap<Integer, Integer> coins = new HashMap<>();
  15.    
  16.     public static void initStatsManagerInMain(Connection statsCon) {
  17.         StatsManager.con = statsCon;
  18.         update("CREATE TABLE IF NOT EXISTS stats(ID INT AUTO_INCREMENT primary key, KILLS INT, DEATHS INT, COINS INT)");
  19.     }
  20.    
  21.     public static void initPlayerByJoin(Player player) {
  22.         if (con == null) { System.out.println("Es besteht keine MySQL-Connection"); return; }
  23.         if (!isUserExists(IDManager.getID(player))) {
  24.             update("INSERT INTO stats(ID, KILLS, DEATHS, COINS) VALUES('" + IDManager.getID(player) + "', 0, 0, 0)");
  25.             kills.put(IDManager.getID(player), 0);
  26.             deaths.put(IDManager.getID(player), 0);
  27.             coins.put(IDManager.getID(player), 0);
  28.             return;
  29.         }
  30.        
  31.         kills.put(IDManager.getID(player), getKillsMySQL(IDManager.getID(player)));
  32.         deaths.put(IDManager.getID(player), getDeathsMySQL(IDManager.getID(player)));
  33.         coins.put(IDManager.getID(player), getCoinsMySQL(IDManager.getID(player)));
  34.     }
  35.    
  36.     public static void saveDataByLeave(Player player) {
  37.         if (!isUserExists(IDManager.getID(player))) return;
  38.         update("UPDATE stats SET KILLS= '" + getKills(player) + "' WHERE ID= '" + IDManager.getID(player) + "'");
  39.         update("UPDATE stats SET DEATHS= '" + getDeaths(player) + "' WHERE ID= '" + IDManager.getID(player) + "'");
  40.         update("UPDATE stats SET COINS= '" + getCoins(player) + "' WHERE ID= '" + IDManager.getID(player) + "'");
  41.     }
  42.  
  43.     private static boolean isUserExists(Integer id) {
  44.         if (con == null) { System.out.println("Es besteht keine MySQL-Connection"); return false; }
  45.         ResultSet result = query("SELECT * FROM stats WHERE ID= '" + id + "'");
  46.        
  47.         try {
  48.             if (result.next())
  49.                 return true;
  50.         } catch (SQLException e) { e.printStackTrace(); }
  51.        
  52.         return false;
  53.     }
  54.    
  55.     public static void addKill(Player player) {
  56.         if (!kills.containsKey(IDManager.getID(player))) return;
  57.         kills.put(IDManager.getID(player), getKills(player) + 1);
  58.     }
  59.    
  60.     public static void addDeath(Player player) {
  61.         if (!deaths.containsKey(IDManager.getID(player))) return;
  62.         deaths.put(IDManager.getID(player), getDeaths(player) + 1);
  63.     }
  64.    
  65.     public static void addCoins(Player player, int coins) {
  66.         if (!StatsManager.coins.containsKey(IDManager.getID(player))) return;
  67.         StatsManager.coins.put(IDManager.getID(player), getCoins(player) + coins);
  68.     }
  69.    
  70.     public static void setKills(Player player, int kills) {
  71.         if (!StatsManager.kills.containsKey(IDManager.getID(player))) return;
  72.         StatsManager.kills.put(IDManager.getID(player), kills);
  73.     }
  74.    
  75.     public static void setDeaths(Player player, int deaths) {
  76.         if (!StatsManager.deaths.containsKey(IDManager.getID(player))) return;
  77.         StatsManager.deaths.put(IDManager.getID(player), deaths);
  78.     }
  79.  
  80.     public static void setCoins(Player player, int coins) {
  81.         if (!StatsManager.coins.containsKey(IDManager.getID(player))) return;
  82.         StatsManager.coins.put(IDManager.getID(player), coins);
  83.     }
  84.    
  85.     public static void removeCoins(Player player, int coins) {
  86.         if (!StatsManager.coins.containsKey(IDManager.getID(player))) return;
  87.         int output = 0;
  88.         if (coins <= getCoins(player) && coins > 0) {
  89.             output = coins;
  90.         }
  91.         StatsManager.coins.put(IDManager.getID(player), output);
  92.     }
  93.    
  94.     public static int getKills(Player player) {
  95.         if (!kills.containsKey(IDManager.getID(player))) return -1;
  96.         return kills.get(IDManager.getID(player));
  97.     }
  98.    
  99.     public static int getDeaths(Player player) {
  100.         if (!deaths.containsKey(IDManager.getID(player))) return -1;
  101.         return deaths.get(IDManager.getID(player));
  102.     }
  103.    
  104.     public static int getCoins(Player player) {
  105.         if (!coins.containsKey(IDManager.getID(player))) return -1;
  106.         return coins.get(IDManager.getID(player));
  107.     }
  108.    
  109.     private static int getCoinsMySQL(Integer id) {
  110.         if (!isUserExists(id)) return -1;
  111.         ResultSet result = query("SELECT * FROM stats WHERE ID= '" + id + "'");
  112.        
  113.         try {
  114.             if (result.next())
  115.                 return result.getInt("COINS");
  116.         } catch (SQLException e) { e.printStackTrace(); }
  117.         return -1;
  118.     }
  119.    
  120.     private static int getKillsMySQL(Integer id) {
  121.         if (!isUserExists(id)) return -1;
  122.         ResultSet result = query("SELECT * FROM stats WHERE ID= '" + id + "'");
  123.        
  124.         try {
  125.             if (result.next())
  126.                 return result.getInt("KILLS");
  127.         } catch (SQLException e) { e.printStackTrace(); }
  128.         return -1;
  129.     }
  130.    
  131.     private static int getDeathsMySQL(Integer id) {
  132.         if (!isUserExists(id)) return -1;
  133.         ResultSet result = query("SELECT * FROM stats WHERE ID= '" + id + "'");
  134.        
  135.         try {
  136.             if (result.next())
  137.                 return result.getInt("DEATHS");
  138.         } catch (SQLException e) { e.printStackTrace(); }
  139.         return -1;
  140.     }
  141.    
  142.     private static void update(String qry) {
  143.         if (con == null) { System.out.println("Es besteht keine MySQL-Connection"); return; }
  144.         try {
  145.             Statement statement = con.createStatement();
  146.             statement.executeUpdate(qry);
  147.             statement.close();
  148.         } catch (SQLException e) { e.printStackTrace(); }
  149.     }
  150.    
  151.     private static ResultSet query(String qry) {
  152.         ResultSet resultSet = null;
  153.         if (con == null) { System.out.println("Es besteht keine MySQL-Connection"); return null; }
  154.         try {
  155.             Statement statement = con.createStatement();
  156.             resultSet = statement.executeQuery(qry);
  157.         } catch (SQLException e) { e.printStackTrace(); }
  158.         return resultSet;
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement