Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.crafttim.database;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.bukkit.entity.Player;
- import fr.crafttim.database.cache.PlayerData;
- import fr.crafttim.database.rank.Rank;
- public class SQLConnection {
- private Connection connection;
- private String urlbase, host, database, user, password;
- private Database pl;
- public SQLConnection(Database pl, String urlbase, String host, String database, String user, String password) {
- this.pl = pl;
- this.urlbase = urlbase;
- this.host = host;
- this.database = database;
- this.user = user;
- this.password = password;
- }
- public void connect() {
- if (!isConnect()) {
- try {
- connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
- System.out.println("Connection vers la base de donnée établit avec succés");
- } catch (SQLException e) {
- System.out.println("Erreur lors de la connection à la base de donnée");
- e.printStackTrace();
- }
- }
- }
- public void disconnect() {
- if (isConnect()) {
- try {
- connection.close();
- System.out.println("Déconnection de la base de donnée réussi");
- } catch (SQLException e) {
- System.out.println("Erreur lors de la déconnection à la base de donnée");
- e.printStackTrace();
- }
- }
- }
- public boolean isConnect() {
- return connection != null;
- }
- public void createAccount(Player p) {
- if (!hasAccount(p)) {
- try {
- PreparedStatement q = connection
- .prepareStatement("INSERT INTO joueurs(uuid, coins, rank) VALUES (?, ?, ?)");
- q.setString(1, p.getUniqueId().toString());
- q.setInt(2, 100);
- q.setInt(3, Rank.JOUEUR.getPower());
- q.execute();
- q.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public boolean hasAccount(Player p) {
- try {
- PreparedStatement q = connection.prepareStatement("SELECT uuid FROM joueurs WHERE uuid = ?");
- q.setString(1, p.getUniqueId().toString());
- ResultSet uuid = q.executeQuery();
- boolean hasAccount = uuid.next();
- q.close();
- return hasAccount;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- public int getBalance(Player p) {
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- return dataP.getCoins();
- }
- return 0;
- }
- public void addMoney(Player p, int amount) {
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- int coins = dataP.getCoins() + amount;
- dataP.setCoins(coins);
- pl.dataPlayers.remove(p);
- pl.dataPlayers.put(p, dataP);
- }
- }
- public void removeMoney(Player p, int amount) {
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- int coins = dataP.getCoins() - amount;
- if(coins <= 0){
- return;
- }
- dataP.setCoins(coins);
- pl.dataPlayers.remove(p);
- pl.dataPlayers.put(p, dataP);
- }
- }
- public void setRank(Player p, Rank rank) {
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- dataP.setRank(rank);
- pl.dataPlayers.remove(p);
- pl.dataPlayers.put(p, dataP);
- }
- }
- public Rank getRank(Player p) {
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- return dataP.getRank();
- }
- return Rank.JOUEUR;
- }
- public PlayerData createPlayerData(Player p){
- if(!pl.dataPlayers.containsKey(p)){
- try {
- PreparedStatement rs = connection.prepareStatement("SELECT coins, grade FROM joueurs WHERE uuid = ?");
- rs.setString(1, p.getUniqueId().toString());
- ResultSet resultats = rs.executeQuery();
- int coins = 0;
- Rank rank = Rank.JOUEUR;
- while(resultats.next()){
- coins = resultats.getInt("coins");
- rank = Rank.powerToRank(resultats.getInt("grade"));
- }
- PlayerData dataP = new PlayerData();
- dataP.setCoins(coins);
- dataP.setRank(rank);
- return dataP;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return new PlayerData();
- }
- public void updatePlayerData(Player p){
- if(pl.dataPlayers.containsKey(p)){
- PlayerData dataP = pl.dataPlayers.get(p);
- int coins = dataP.getCoins();
- Rank rank = dataP.getRank();
- int power = rank.getPower();
- try {
- PreparedStatement rs = connection.prepareStatement("UPDATE joueurs SET grade = ?, coins = ? WHERE uuid = ?");
- rs.setInt(1, power);
- rs.setInt(2, coins);
- rs.setString(3, p.getUniqueId().toString());
- rs.executeUpdate();
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement