Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.timothefocone.freesia.cds.cityapi;
- import org.bukkit.ChatColor;
- import org.bukkit.entity.Player;
- import java.sql.*;
- import java.util.UUID;
- public class SqlConnection {
- private static Connection connection;
- private String urlbase, host, database, user, password;
- //Paramètres de connexion
- public SqlConnection(String urlbase, String host, String database, String user, String password) {
- this.urlbase = urlbase;
- this.host = host;
- this.database = database;
- this.user = user;
- this.password = password;
- }
- //Ouverture de la connexion à la BDD
- public void connection() {
- if (!isConnected()) {
- try {
- connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
- Logger.log("[Bank] Connecté la base de donnée.", "ok");
- } catch (SQLException e) {
- Logger.log("Impossible de se connecter à la base de donnée", "er");
- }
- }
- }
- //Déconnexion de la BDD
- public void disconnect() {
- if (isConnected()) {
- try {
- connection.close();
- } catch (SQLException e) {
- Logger.log("[Bank] Déconnecté de la base de donnée.","info");
- }
- }
- }
- //Vérification de l'état de la connexion
- public boolean isConnected() {
- return connection != null;
- }
- //Créer les tables (si elles n'existent pas)
- public void createTable(){
- try(Statement statement = connection.createStatement();){
- statement.executeUpdate("CREATE TABLE IF NOT EXISTS Accounts(uuid varchar(36), Nom VARCHAR(16), Emeraudes int, Team varchar(16)");
- Logger.log("Tables créées","ok");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- //Vérfier si le joueur est enregistré
- public boolean hasAccount(Player player) {
- //SELECT
- try {
- PreparedStatement q = connection.prepareStatement("SELECT uuid FROM Accounts WHERE uuid = ?");
- q.setString(1, player.getUniqueId().toString());
- ResultSet resultat = q.executeQuery();
- boolean hasAccount = resultat.next();
- q.close();
- Logger.log("Aucun compte pour" + player, "info");
- return hasAccount;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- //Ajouter un nouvel utilisateur à la BDD (via son UUID)
- // UUID, puis Nom du joueur, puis définit les émeraudes à 0, puis met à jour le nom du joueur si changement
- public void createUser(Player player) {
- try {
- PreparedStatement q = connection.prepareStatement("INSERT INTO Accounts VALUES(?,?,?,?) ON DUPLICATE KEY UPDATE Nom=?";
- q.setString(1, player.getUniqueId().toString());
- q.setString(2, player.getName());
- q.setInt(3, 0);
- q.setString(4, "none");
- q.setString(5, player.getName());
- q.execute();
- q.close();
- Logger.log("User OK","ok");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- //Vérifie si un joueur appartient à une team
- public static boolean hasTeam(Player player) {
- try {
- PreparedStatement q = connection.prepareStatement("SELECT Team FROM Accounts WHERE uuid = ?");
- q.setString(1, player.getUniqueId().toString());
- String team = "";
- ResultSet resultat = q.executeQuery();
- while (resultat.next()) {
- team = resultat.getString("team");
- }
- q.close();
- if (team == "none") {
- Logger.log("Acune team pour" + player, "info");
- return false;
- }
- else if (team != "none") {
- return true;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- //Récupère le nombre d'emeraudes d'un joueur depuis son UUID
- public static int getPlayerBalance(String suuid) {
- try {
- PreparedStatement q = connection.prepareStatement("SELECT Emeraudes FROM Accounts WHERE uuid = ?");
- q.setString(1,suuid);
- int balance = 0;
- ResultSet rs = q.executeQuery();
- while (rs.next()) {
- balance = rs.getInt("Emeraudes");
- }
- q.close();
- return balance;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return 0;
- }
- //Met à jour le nombre d'émeraudes d'un joueur depuis son UUID
- public static void updateEmeralds(UUID Puuid, int amount){
- //UPDATE
- String uuid = Puuid.toString();
- int balance = getPlayerBalance(uuid);
- int newbalance = balance + amount;
- try {
- PreparedStatement rs = connection.prepareStatement("UPDATE Accounts SET Emeraudes = ? WHERE uuid = ?");
- rs.setInt(1, amount);
- rs.setString(2, uuid);
- rs.executeUpdate();
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement