Advertisement
Guest User

Untitled

a guest
Feb 7th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. package net.oasya.API.SQL;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Timestamp;
  9. import java.util.Date;
  10.  
  11. import org.bukkit.entity.Player;
  12.  
  13. import net.oasya.API.Main;
  14. import net.oasya.API.Cache.PlayerData;
  15. import net.oasya.API.Rank.RankEnum;
  16.  
  17. public class SqlConnection {
  18.  
  19. private Connection connection;
  20. private String urlbase,host,database,user,pass;
  21. private Main pl;
  22.  
  23. public SqlConnection(Main pl, String urlbase, String host, String database, String user, String pass) {
  24. this.urlbase = urlbase;
  25. this.host = host;
  26. this.database = database;
  27. this.user = user;
  28. this.pl = pl;
  29. this.pass = pass;
  30. }
  31.  
  32. public void connection() {
  33. if(!isConnected()){
  34. try {
  35. connection = DriverManager.getConnection(urlbase + host + "/" + database, user, pass);
  36. } catch (SQLException e) {
  37. System.out.println("Connected SQL FAILED");
  38. e.printStackTrace();
  39. }
  40. }
  41. }
  42.  
  43. public void disconnect() {
  44. if(!isConnected()){
  45. try {
  46. connection.close();
  47. } catch (SQLException e) {
  48. System.out.println("Disconnected SQL FAILED");
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53.  
  54. public boolean isConnected(){
  55. return connection != null;
  56. }
  57.  
  58. public Connection getConnection() {
  59. return connection;
  60. }
  61.  
  62. public PlayerData createPlayerData(Player player) {
  63. if (!this.pl.dataPlayers.containsKey(player)) {
  64. try {
  65. PreparedStatement rs = this.connection.prepareStatement("SELECT rank, coins, hasexpireddaterank, expirationdaterank FROM players WHERE uuid = ?");
  66. rs.setString(1, player.getUniqueId().toString());
  67. ResultSet resultats = rs.executeQuery();
  68.  
  69. int rankvalue = 0;
  70. int coins = 0;
  71. RankEnum rank = RankEnum.JOUEUR;
  72. while (resultats.next()) {
  73. rank = RankEnum.powerToRank(resultats.getInt("rank"));
  74. coins = resultats.getInt("coins");
  75. rankvalue = resultats.getInt("hasexpireddaterank");
  76.  
  77. Timestamp now = new Timestamp(new Date().getTime());
  78. Timestamp expire = resultats.getTimestamp("expirationdaterank");
  79. boolean hasExpiredDateRank = expire.before(now);
  80. if ((hasExpiredDateRank) && (rankvalue == 1)) {
  81. rank = RankEnum.JOUEUR;
  82. }
  83. }
  84. PlayerData dataP = new PlayerData();
  85. dataP.setRank(rank);
  86. dataP.setCoins(coins);
  87. return dataP;
  88. } catch (SQLException e) {
  89. e.printStackTrace();
  90. }
  91. }
  92. return new PlayerData();
  93. }
  94.  
  95. public void updatePlayerData(Player player) {
  96. if (this.pl.dataPlayers.containsKey(player)) {
  97. PlayerData dataP = (PlayerData)this.pl.dataPlayers.get(player);
  98. int coins = dataP.getCoins();
  99. RankEnum rank = dataP.getRank();
  100. int power = rank.getPower();
  101. try {
  102. PreparedStatement rs = this.connection.prepareStatement("UPDATE players SET rank = ?, coins = ? WHERE uuid = ?");
  103. rs.setInt(1, power);
  104. rs.setInt(2, coins);
  105. rs.setString(3, player.getUniqueId().toString());
  106. rs.executeUpdate();
  107. rs.close();
  108. } catch (SQLException e) {
  109. e.printStackTrace();
  110. }
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement