Advertisement
Guest User

Untitled

a guest
Aug 28th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. package me.innos.rankingmaster.data;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. import java.util.List;
  11.  
  12. import org.bukkit.Bukkit;
  13. import org.bukkit.entity.Player;
  14.  
  15. import me.innos.rankingmaster.Main;
  16. import me.innos.rankingmaster.user.User;
  17. import me.innos.rankingmaster.util.Config;
  18.  
  19. public class SQLiteData implements Data {
  20.  
  21. private Connection conn = null;
  22. private Statement stat = null;
  23.  
  24. private File main = new Main().getDataFolder();
  25. private String fileName;
  26. private File file;
  27.  
  28. public SQLiteData(String fileName) {
  29. this.fileName = fileName;
  30. file = new File(main, this.fileName + ".db");
  31. try {
  32. this.file.createNewFile();
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. Bukkit.getScheduler().runTaskTimerAsynchronously(new Main(), new Runnable() {
  37.  
  38. @Override
  39. public void run() {
  40. saveUsers();
  41. }
  42.  
  43. }, 20 * 10, 20 * 60 * new Config().databaseAutoSaveTime);
  44. }
  45. @Override
  46. public void createUser(Player p) {
  47. if(!userExists(p)) {
  48. new Main().getUsers().add(new User(p));
  49. }
  50. }
  51.  
  52. @Override
  53. public void deleteUser(User u) {
  54. if(userExists(u.getPlayer())) {
  55. new Main().getUsers().remove(u);
  56. }
  57. }
  58.  
  59. @Override
  60. public User getUser(Player p) {
  61. for(User u : new Main().getUsers()) {
  62. if(u.getPlayer().equals(p)) return u;
  63. }
  64. return null;
  65. }
  66.  
  67. @Override
  68. public boolean userExists(Player p) {
  69. for(User u : new Main().getUsers()) {
  70. if(u.equals(new User(p))) return true;
  71. }
  72. return false;
  73. }
  74.  
  75. @Override
  76. public void saveUser(User u) {
  77. update("INSERT INTO " + fileName + " (id, uuid, name, points, kills, deaths) VALUES (" +
  78. u.getId() + ", " +
  79. u.getUuid().toString() + ", " +
  80. u.getPoints() + ", " +
  81. u.getKills() + ", " +
  82. u.getDeaths() + ")");
  83. }
  84.  
  85. @Override
  86. public void saveUsers() {
  87. update("create table if not exists " + fileName + "(" +
  88. "id int not null," +
  89. "uuid varchar(100) not null," +
  90. "name varchar(50) not null," +
  91. "points int not null," +
  92. "kills int not null," +
  93. "deaths int not null," +
  94. "primary key(id));");
  95. for(User u : new Main().getUsers()) saveUser(u);
  96. }
  97.  
  98. @Override
  99. public List<User> loadUsers(){
  100. ResultSet rs = query("SELECT * FROM '" + fileName + "'");
  101. try {
  102. while(rs.next()){
  103. new Main().getUsers().add(new User(rs));
  104. }
  105. } catch (SQLException e) {
  106. e.printStackTrace();
  107. }
  108. return null;
  109. }
  110.  
  111. public ResultSet query(String query) {
  112. try {
  113. conn = DriverManager.getConnection("jdbc:sqlite:plugins/" + new Main().getDescription().getName() + "/" + fileName + ".db");
  114. stat = conn.createStatement();
  115. } catch (SQLException e1) {
  116. e1.printStackTrace();
  117. }
  118. try {
  119. return stat.executeQuery(query);
  120. } catch (SQLException e) {
  121. e.printStackTrace();
  122. }
  123. return null;
  124. }
  125. public void update(String update) {
  126. try {
  127. conn = DriverManager.getConnection("jdbc:sqlite:plugins/" + new Main().getDescription().getName() + "/" + fileName + ".db");
  128. stat = conn.createStatement();
  129. } catch (SQLException e1) {
  130. e1.printStackTrace();
  131. }
  132. try {
  133. stat.executeUpdate(update);
  134. } catch (SQLException e) {
  135. e.printStackTrace();
  136. }
  137. }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement