Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.sithey.royalapi.sql;
- import fr.sithey.royalapi.Main;
- import org.bukkit.Bukkit;
- import java.sql.*;
- import java.util.function.Consumer;
- public class SqlConnection {
- private String urlbase;
- private String host;
- private String database;
- private String user;
- private String password;
- private Connection connection;
- 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;
- }
- public Connection getConnection() {
- return connection;
- }
- public boolean isConnected(){
- return connection != null;
- }
- public void connect(){
- if(!isConnected()){
- try {
- connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
- System.out.println("Connexion etablie");
- createTable();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public void createTable() {
- try {
- Statement statement = connection.createStatement();
- Statement statement1 = connection.createStatement();
- Statement statement2 = connection.createStatement();
- Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §aINFO: §6MYSQL §rCreation des tables inexistantes en cours...");
- statement.executeUpdate("CREATE TABLE IF NOT EXISTS `compte` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200), `ip` varchar(200), `pseudo` varchar(200), `royalcoin` bigint(20), `grade` int(100))");
- statement1.executeUpdate("CREATE TABLE IF NOT EXISTS `bans` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200),`end` bigint, `reason` varchar(200))");
- statement2.executeUpdate("CREATE TABLE IF NOT EXISTS `mute` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200),`end` bigint, `reason` varchar(200))");
- ResultSet res = statement.executeQuery("SELECT * FROM `compte`");
- ResultSet res1 = statement.executeQuery("SELECT * FROM `bans`");
- ResultSet res2 = statement.executeQuery("SELECT * FROM `mute`");
- Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §aINFO: §6MYSQL §rCreation des tables fini.");
- res.next();
- res1.next();
- res2.next();
- } catch (SQLException e) {
- Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §cERROR: §6MYSQL §rImpossible de creer les tables.");
- e.printStackTrace();
- }
- }
- public void disconnect(){
- if(isConnected()){
- try {
- connection.close();
- connection = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public void createAccount(Compte compte){
- if (!hasAccount(compte)) {
- try {
- PreparedStatement q = connection.prepareStatement("INSERT INTO compte(uuid,ip,pseudo,royalcoin,grade) VALUES (?,?,?,?,?)");
- q.setString(1, compte.getUuid().toString());
- q.setString(2, compte.getIp());
- q.setString(3, compte.getPseudo());
- q.setInt(4, compte.getRoyalcoin());
- q.setInt(5, compte.getGrade().getPower());
- q.execute();
- q.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public void loadAccout(Compte compte){
- try {
- PreparedStatement q = connection.prepareStatement("SELECT ip, pseudo, royalcoin, grade FROM compte where uuid = ?");
- q.setString(1, compte.getUuid().toString());
- ResultSet resultSet = q.executeQuery();
- if (resultSet.next()){
- compte.setIp(resultSet.getString("ip"));
- compte.setPseudo(resultSet.getString("pseudo"));
- compte.setRoyalcoin(resultSet.getInt("royalcoin"));
- compte.setGrade(Grade.getGradeWithPower(resultSet.getInt("grade")));
- }
- q.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public boolean hasAccount(Compte compte){
- try {
- PreparedStatement q = connection.prepareStatement("SELECT uuid FROM compte WHERE uuid = ?");
- q.setString(1, compte.getUuid().toString());
- ResultSet rs = q.executeQuery();
- boolean hasAccount = rs.next();
- q.close();
- return hasAccount;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return true;
- }
- public void saveAccount(Compte compte){
- try {
- PreparedStatement q = connection.prepareStatement("UPDATE compte SET ip = ?, pseudo = ?, royalcoin = ?, grade = ? WHERE uuid = ?");
- q.setString(1, compte.getIp());
- q.setString(2, compte.getPseudo());
- q.setInt(3, compte.getRoyalcoin());
- q.setInt(4, compte.getGrade().getPower());
- q.setString(5, compte.getUuid().toString());
- q.executeUpdate();
- q.close();
- compte.destroy();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement