Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.oasya.API.SQL;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.util.Date;
- import org.bukkit.entity.Player;
- import net.oasya.API.Main;
- import net.oasya.API.Cache.PlayerData;
- import net.oasya.API.Rank.RankEnum;
- public class SqlConnection {
- private Connection connection;
- private String urlbase,host,database,user,pass;
- private Main pl;
- public SqlConnection(Main pl, String urlbase, String host, String database, String user, String pass) {
- this.urlbase = urlbase;
- this.host = host;
- this.database = database;
- this.user = user;
- this.pl = pl;
- this.pass = pass;
- }
- public void connection() {
- if(!isConnected()){
- try {
- connection = DriverManager.getConnection(urlbase + host + "/" + database, user, pass);
- } catch (SQLException e) {
- System.out.println("Connected SQL FAILED");
- e.printStackTrace();
- }
- }
- }
- public void disconnect() {
- if(!isConnected()){
- try {
- connection.close();
- } catch (SQLException e) {
- System.out.println("Disconnected SQL FAILED");
- e.printStackTrace();
- }
- }
- }
- public boolean isConnected(){
- return connection != null;
- }
- public Connection getConnection() {
- return connection;
- }
- public PlayerData createPlayerData(Player player) {
- if (!this.pl.dataPlayers.containsKey(player)) {
- try {
- PreparedStatement rs = this.connection.prepareStatement("SELECT rank, coins, hasexpireddaterank, expirationdaterank FROM players WHERE uuid = ?");
- rs.setString(1, player.getUniqueId().toString());
- ResultSet resultats = rs.executeQuery();
- int rankvalue = 0;
- int coins = 0;
- RankEnum rank = RankEnum.JOUEUR;
- while (resultats.next()) {
- rank = RankEnum.powerToRank(resultats.getInt("rank"));
- coins = resultats.getInt("coins");
- rankvalue = resultats.getInt("hasexpireddaterank");
- Timestamp now = new Timestamp(new Date().getTime());
- Timestamp expire = resultats.getTimestamp("expirationdaterank");
- boolean hasExpiredDateRank = expire.before(now);
- if ((hasExpiredDateRank) && (rankvalue == 1)) {
- rank = RankEnum.JOUEUR;
- }
- }
- PlayerData dataP = new PlayerData();
- dataP.setRank(rank);
- dataP.setCoins(coins);
- return dataP;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return new PlayerData();
- }
- public void updatePlayerData(Player player) {
- if (this.pl.dataPlayers.containsKey(player)) {
- PlayerData dataP = (PlayerData)this.pl.dataPlayers.get(player);
- int coins = dataP.getCoins();
- RankEnum rank = dataP.getRank();
- int power = rank.getPower();
- try {
- PreparedStatement rs = this.connection.prepareStatement("UPDATE players SET rank = ?, coins = ? WHERE uuid = ?");
- rs.setInt(1, power);
- rs.setInt(2, coins);
- rs.setString(3, player.getUniqueId().toString());
- rs.executeUpdate();
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement