Advertisement
Guest User

Untitled

a guest
May 21st, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. package playerdata;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.UUID;
  8.  
  9. import main.Main;
  10.  
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.scheduler.BukkitRunnable;
  13.  
  14. public class PlayerData {
  15.  
  16. Main main;
  17. private UUID uuid;
  18. private String name;
  19. private int unrankedWins, rankedWins, premiumWins, gamesPlayed, playTime;
  20. boolean loaded;
  21.  
  22. public PlayerData(Player p){
  23. main = Main.getInstance();
  24. uuid = p.getUniqueId();
  25. name = p.getName();
  26. main.joinTime.put(uuid, System.currentTimeMillis());
  27. PlayerDataManager.add(this);
  28. }
  29.  
  30. public void load(){
  31. String uuid = this.uuid.toString().replace("-", "");
  32. new BukkitRunnable() {
  33. PreparedStatement ps;
  34. ResultSet rs;
  35. @Override
  36. public void run() {
  37. try {
  38. Connection con = main.mysql.getConnection();
  39. ps = con.prepareStatement(main.mysql.SELECT);
  40. ps.setString(1, uuid);
  41. int i = 1;
  42. if (!ps.executeQuery().next()){
  43. ps = con.prepareStatement(main.mysql.INSERT);
  44. ps.setString(i++, uuid);
  45. ps.setString(i++, name);
  46. ps.setInt(i++, unrankedWins);
  47. ps.setInt(i++, rankedWins);
  48. ps.setInt(i++, premiumWins);
  49. ps.setInt(i++, gamesPlayed);
  50. ps.setInt(i++, playTime);
  51. ps.execute();
  52. }else{
  53. ps = con.prepareStatement(main.mysql.UPDATE_NAME);
  54. ps.setString(1, name);
  55. ps.setString(2, uuid);
  56. ps.execute();
  57.  
  58. ps = con.prepareStatement(main.mysql.SELECT);
  59. ps.setString(i++, uuid);
  60. rs = ps.executeQuery();
  61. i = 3;
  62. while(rs.next()){
  63. unrankedWins = rs.getInt(i++);
  64. rankedWins = rs.getInt(i++);
  65. premiumWins = rs.getInt(i++);
  66. gamesPlayed = rs.getInt(i++);
  67. playTime = rs.getInt(i++);
  68. }
  69. rs.close();
  70. }
  71.  
  72. ps.close();
  73. loaded = true;
  74. } catch (SQLException e) {
  75. e.printStackTrace();
  76. }
  77. }
  78. }.runTaskLaterAsynchronously(main, 10);
  79. }
  80.  
  81. public void save(){
  82. PlayerDataManager.remove(this);
  83. if (!loaded)
  84. return;
  85. PreparedStatement ps;
  86. int i = 1;
  87. try {
  88. Connection con = main.mysql.getConnection();
  89.  
  90. ps = con.prepareStatement(main.mysql.UPDATE);
  91. ps.setString(i++, name);
  92. ps.setInt(i++, unrankedWins);
  93. ps.setInt(i++, rankedWins);
  94. ps.setInt(i++, premiumWins);
  95. ps.setInt(i++, gamesPlayed);
  96. ps.setInt(i++, (int) (playTime + (System.currentTimeMillis() - main.joinTime.get(uuid))/1000));
  97. ps.setString(i++, uuid.toString().replace("-", ""));
  98. ps.execute();
  99.  
  100. ps.close();
  101. main.joinTime.remove(uuid);
  102. } catch (SQLException e) {
  103. e.printStackTrace();
  104. }
  105. }
  106.  
  107. public void saveAsync(){new BukkitRunnable() {@Override public void run() {save();}}.runTaskAsynchronously(main);}
  108.  
  109. //Getters
  110. public UUID getUniqueId(){return uuid;}
  111. public String getName(){return name;}
  112. public int getUnrankedWins(){return unrankedWins;}
  113. public int getRankedWins(){return rankedWins;}
  114. public int getPremiumWins(){return premiumWins;}
  115. public int getGamesPlayed(){return gamesPlayed;}
  116. public int getPlayTime(){return playTime;}
  117.  
  118. //Setters
  119. public void setUnrankedWins(int i){unrankedWins = i;}
  120. public void setRankedWins(int i){rankedWins = i;}
  121. public void setPremiumWins(int i){premiumWins = i;}
  122. public void setGamesPlayed(int i){gamesPlayed = i;}
  123. public void setPlayTime(int i){playTime = i;}
  124.  
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement