Advertisement
Guest User

Untitled

a guest
Mar 28th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. package com.timothefocone.freesia.cds.cityapi;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.entity.Player;
  5.  
  6. import java.sql.*;
  7. import java.util.UUID;
  8.  
  9. public class SqlConnection {
  10.  
  11. private static Connection connection;
  12. private String urlbase, host, database, user, password;
  13.  
  14. //Paramètres de connexion
  15. public SqlConnection(String urlbase, String host, String database, String user, String password) {
  16. this.urlbase = urlbase;
  17. this.host = host;
  18. this.database = database;
  19. this.user = user;
  20. this.password = password;
  21. }
  22.  
  23. //Ouverture de la connexion à la BDD
  24. public void connection() {
  25. if (!isConnected()) {
  26. try {
  27. connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
  28. Logger.log("[Bank] Connecté la base de donnée.", "ok");
  29. } catch (SQLException e) {
  30. Logger.log("Impossible de se connecter à la base de donnée", "er");
  31. }
  32. }
  33. }
  34.  
  35. //Déconnexion de la BDD
  36. public void disconnect() {
  37. if (isConnected()) {
  38. try {
  39. connection.close();
  40. } catch (SQLException e) {
  41. Logger.log("[Bank] Déconnecté de la base de donnée.","info");
  42. }
  43. }
  44. }
  45.  
  46. //Vérification de l'état de la connexion
  47. public boolean isConnected() {
  48. return connection != null;
  49. }
  50.  
  51. //Créer les tables (si elles n'existent pas)
  52. public void createTable(){
  53. try(Statement statement = connection.createStatement();){
  54. statement.executeUpdate("CREATE TABLE IF NOT EXISTS Accounts(uuid varchar(36), Nom VARCHAR(16), Emeraudes int, Team varchar(16)");
  55. Logger.log("Tables créées","ok");
  56. } catch (SQLException e) {
  57. e.printStackTrace();
  58. }
  59. }
  60.  
  61.  
  62.  
  63. //Vérfier si le joueur est enregistré
  64. public boolean hasAccount(Player player) {
  65. //SELECT
  66.  
  67. try {
  68. PreparedStatement q = connection.prepareStatement("SELECT uuid FROM Accounts WHERE uuid = ?");
  69. q.setString(1, player.getUniqueId().toString());
  70. ResultSet resultat = q.executeQuery();
  71. boolean hasAccount = resultat.next();
  72. q.close();
  73. Logger.log("Aucun compte pour" + player, "info");
  74. return hasAccount;
  75. } catch (SQLException e) {
  76. e.printStackTrace();
  77. }
  78.  
  79. return false;
  80. }
  81.  
  82.  
  83. //Ajouter un nouvel utilisateur à la BDD (via son UUID)
  84. // UUID, puis Nom du joueur, puis définit les émeraudes à 0, puis met à jour le nom du joueur si changement
  85. public void createUser(Player player) {
  86. try {
  87. PreparedStatement q = connection.prepareStatement("INSERT INTO Accounts VALUES(?,?,?,?) ON DUPLICATE KEY UPDATE Nom=?";
  88. q.setString(1, player.getUniqueId().toString());
  89. q.setString(2, player.getName());
  90. q.setInt(3, 0);
  91. q.setString(4, "none");
  92. q.setString(5, player.getName());
  93. q.execute();
  94. q.close();
  95. Logger.log("User OK","ok");
  96. } catch (SQLException e) {
  97. e.printStackTrace();
  98. }
  99. }
  100.  
  101. //Vérifie si un joueur appartient à une team
  102. public static boolean hasTeam(Player player) {
  103.  
  104. try {
  105. PreparedStatement q = connection.prepareStatement("SELECT Team FROM Accounts WHERE uuid = ?");
  106. q.setString(1, player.getUniqueId().toString());
  107. String team = "";
  108. ResultSet resultat = q.executeQuery();
  109. while (resultat.next()) {
  110. team = resultat.getString("team");
  111. }
  112. q.close();
  113. if (team == "none") {
  114. Logger.log("Acune team pour" + player, "info");
  115. return false;
  116. }
  117. else if (team != "none") {
  118. return true;
  119. }
  120. } catch (SQLException e) {
  121. e.printStackTrace();
  122. }
  123.  
  124. return false;
  125. }
  126.  
  127. //Récupère le nombre d'emeraudes d'un joueur depuis son UUID
  128. public static int getPlayerBalance(String suuid) {
  129. try {
  130. PreparedStatement q = connection.prepareStatement("SELECT Emeraudes FROM Accounts WHERE uuid = ?");
  131. q.setString(1,suuid);
  132.  
  133. int balance = 0;
  134. ResultSet rs = q.executeQuery();
  135.  
  136. while (rs.next()) {
  137. balance = rs.getInt("Emeraudes");
  138. }
  139.  
  140. q.close();
  141.  
  142. return balance;
  143.  
  144. } catch (SQLException e) {
  145. e.printStackTrace();
  146. }
  147.  
  148. return 0;
  149. }
  150.  
  151. //Met à jour le nombre d'émeraudes d'un joueur depuis son UUID
  152. public static void updateEmeralds(UUID Puuid, int amount){
  153. //UPDATE
  154. String uuid = Puuid.toString();
  155. int balance = getPlayerBalance(uuid);
  156. int newbalance = balance + amount;
  157.  
  158. try {
  159. PreparedStatement rs = connection.prepareStatement("UPDATE Accounts SET Emeraudes = ? WHERE uuid = ?");
  160. rs.setInt(1, amount);
  161. rs.setString(2, uuid);
  162. rs.executeUpdate();
  163. rs.close();
  164.  
  165. } catch (SQLException e) {
  166. e.printStackTrace();
  167. }
  168.  
  169. }
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement