Advertisement
craftim_74

Untitled

Nov 5th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.69 KB | None | 0 0
  1. package fr.crafttim.database;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. import org.bukkit.entity.Player;
  10.  
  11. import fr.crafttim.database.cache.PlayerData;
  12. import fr.crafttim.database.rank.Rank;
  13.  
  14. public class SQLConnection {
  15.  
  16.     private Connection connection;
  17.     private String urlbase, host, database, user, password;
  18.     private Database pl;
  19.  
  20.     public SQLConnection(Database pl, String urlbase, String host, String database, String user, String password) {
  21.         this.pl = pl;
  22.         this.urlbase = urlbase;
  23.         this.host = host;
  24.         this.database = database;
  25.         this.user = user;
  26.         this.password = password;
  27.     }
  28.  
  29.     public void connect() {
  30.         if (!isConnect()) {
  31.             try {
  32.                 connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
  33.                 System.out.println("Connection vers la base de donnée établit avec succés");
  34.             } catch (SQLException e) {
  35.                 System.out.println("Erreur lors de la connection à la base de donnée");
  36.                 e.printStackTrace();
  37.             }
  38.         }
  39.     }
  40.  
  41.     public void disconnect() {
  42.         if (isConnect()) {
  43.             try {
  44.                 connection.close();
  45.                 System.out.println("Déconnection de la base de donnée réussi");
  46.             } catch (SQLException e) {
  47.                 System.out.println("Erreur lors de la déconnection à la base de donnée");
  48.                 e.printStackTrace();
  49.             }
  50.         }
  51.     }
  52.  
  53.     public boolean isConnect() {
  54.         return connection != null;
  55.     }
  56.  
  57.     public void createAccount(Player p) {
  58.         if (!hasAccount(p)) {
  59.             try {
  60.                 PreparedStatement q = connection
  61.                         .prepareStatement("INSERT INTO joueurs(uuid, coins, rank) VALUES (?, ?, ?)");
  62.                 q.setString(1, p.getUniqueId().toString());
  63.                 q.setInt(2, 100);
  64.                 q.setInt(3, Rank.JOUEUR.getPower());
  65.                 q.execute();
  66.                 q.close();
  67.             } catch (SQLException e) {
  68.                 e.printStackTrace();
  69.             }
  70.         }
  71.     }
  72.  
  73.     public boolean hasAccount(Player p) {
  74.         try {
  75.             PreparedStatement q = connection.prepareStatement("SELECT uuid FROM joueurs WHERE uuid = ?");
  76.             q.setString(1, p.getUniqueId().toString());
  77.             ResultSet uuid = q.executeQuery();
  78.             boolean hasAccount = uuid.next();
  79.             q.close();
  80.  
  81.             return hasAccount;
  82.         } catch (SQLException e) {
  83.             e.printStackTrace();
  84.         }
  85.  
  86.         return false;
  87.     }
  88.  
  89.     public int getBalance(Player p) {
  90.         if(pl.dataPlayers.containsKey(p)){
  91.             PlayerData dataP = pl.dataPlayers.get(p);
  92.            
  93.             return dataP.getCoins();
  94.         }
  95.         return 0;
  96.     }
  97.  
  98.     public void addMoney(Player p, int amount) {
  99.         if(pl.dataPlayers.containsKey(p)){
  100.             PlayerData dataP = pl.dataPlayers.get(p);
  101.             int coins = dataP.getCoins() + amount;
  102.             dataP.setCoins(coins);
  103.             pl.dataPlayers.remove(p);
  104.             pl.dataPlayers.put(p, dataP);
  105.         }
  106.     }
  107.  
  108.     public void removeMoney(Player p, int amount) {
  109.         if(pl.dataPlayers.containsKey(p)){
  110.             PlayerData dataP = pl.dataPlayers.get(p);
  111.             int coins = dataP.getCoins() - amount;
  112.             if(coins <= 0){
  113.                 return;
  114.             }
  115.             dataP.setCoins(coins);
  116.             pl.dataPlayers.remove(p);
  117.             pl.dataPlayers.put(p, dataP);
  118.         }
  119.     }
  120.  
  121.     public void setRank(Player p, Rank rank) {
  122.         if(pl.dataPlayers.containsKey(p)){
  123.             PlayerData dataP = pl.dataPlayers.get(p);
  124.             dataP.setRank(rank);
  125.             pl.dataPlayers.remove(p);
  126.             pl.dataPlayers.put(p, dataP);
  127.         }
  128.     }
  129.  
  130.     public Rank getRank(Player p) {
  131.         if(pl.dataPlayers.containsKey(p)){
  132.             PlayerData dataP = pl.dataPlayers.get(p);
  133.             return dataP.getRank();
  134.         }
  135.         return Rank.JOUEUR;
  136.     }
  137.    
  138.     public PlayerData createPlayerData(Player p){
  139.         if(!pl.dataPlayers.containsKey(p)){
  140.             try {
  141.                 PreparedStatement rs = connection.prepareStatement("SELECT coins, grade FROM joueurs WHERE uuid = ?");
  142.                 rs.setString(1, p.getUniqueId().toString());
  143.                 ResultSet resultats = rs.executeQuery();
  144.                 int coins = 0;
  145.                 Rank rank = Rank.JOUEUR;
  146.                 while(resultats.next()){
  147.                     coins = resultats.getInt("coins");
  148.                     rank = Rank.powerToRank(resultats.getInt("grade"));
  149.                 }
  150.                
  151.                 PlayerData dataP = new PlayerData();
  152.                 dataP.setCoins(coins);
  153.                 dataP.setRank(rank);
  154.                
  155.                 return dataP;
  156.             } catch (SQLException e) {
  157.                 e.printStackTrace();
  158.             }
  159.         }
  160.         return new PlayerData();
  161.     }
  162.    
  163.     public void updatePlayerData(Player p){
  164.         if(pl.dataPlayers.containsKey(p)){
  165.             PlayerData dataP = pl.dataPlayers.get(p);
  166.             int coins = dataP.getCoins();
  167.             Rank rank = dataP.getRank();
  168.             int power = rank.getPower();
  169.            
  170.             try {
  171.                 PreparedStatement rs = connection.prepareStatement("UPDATE joueurs SET grade = ?, coins = ? WHERE uuid = ?");
  172.                 rs.setInt(1, power);
  173.                 rs.setInt(2, coins);
  174.                 rs.setString(3, p.getUniqueId().toString());
  175.                 rs.executeUpdate();
  176.                 rs.close();
  177.             } catch (SQLException e) {
  178.                 e.printStackTrace();
  179.             }
  180.            
  181.         }
  182.     }
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement