Advertisement
Isigar

Untitled

Jul 12th, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.09 KB | None | 0 0
  1. package cz.relisoft.plugin;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5.  
  6. import org.bukkit.Bukkit;
  7.  
  8. import com.mysql.jdbc.Statement;
  9.  
  10. import cz.relisoft.mysql.CustomConnection;
  11. import cz.relisoft.plugin.models.Groups;
  12. import cz.relisoft.plugin.models.Permission;
  13. import cz.relisoft.plugin.models.Player;
  14. import cz.relisoft.plugin.models.PlayerJoins;
  15. import cz.relisoft.plugin.models.PlayerQuit;
  16. import cz.relisoft.plugin.models.Spawns;
  17. import cz.relisoft.plugin.models.Vip;
  18. import cz.relisoft.plugin.models.Warp;
  19.  
  20. public class SQLModels {
  21. Main main;
  22. CustomConnection cC;
  23.  
  24. Player playerModel;
  25. PlayerJoins playerJoinsModel;
  26. PlayerQuit playerQuitModel;
  27. Warp warpModel;
  28. Permission permissionModel;
  29. Groups groupModel;
  30. Spawns spawns;
  31. Vip vipModel;
  32.  
  33. public SQLModels(Main main) {
  34. this.main = main;
  35. this.cC = main.getCustomConnection();
  36.  
  37. this.playerModel = new Player();
  38. this.playerJoinsModel = new PlayerJoins();
  39. this.playerQuitModel = new PlayerQuit();
  40. this.warpModel = new Warp();
  41. this.permissionModel = new Permission();
  42. this.groupModel = new Groups();
  43. this.spawns = new Spawns();
  44. this.vipModel = new Vip();
  45. }
  46.  
  47. private class AsyncUpdate implements Runnable {
  48. private String query;
  49. private Statement statement;
  50.  
  51. public AsyncUpdate(Statement statement, String query) {
  52. this.query = query;
  53. this.statement = statement;
  54. }
  55.  
  56. @Override
  57. public void run() {
  58. try {
  59. this.statement.executeUpdate(query);
  60. }catch (Exception e) {
  61. e.printStackTrace();
  62. }
  63. }
  64.  
  65. }
  66.  
  67. private class AsyncSelect implements Runnable {
  68. private String query;
  69. private Statement statement;
  70. private ResultCallback result;
  71.  
  72. public AsyncSelect(Statement statement, String query, final ResultCallback result) {
  73. this.query = query;
  74. this.statement = statement;
  75. this.result = result;
  76. }
  77.  
  78. @Override
  79. public void run() {
  80. try {
  81. ResultSet result = this.statement.executeQuery(query);
  82. this.result.done(result);
  83. }catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. }
  87.  
  88. }
  89.  
  90. private class AsyncCreateTables implements Runnable {
  91.  
  92. private Statement statement;
  93. private Player playerModel;
  94. private PlayerJoins playerJoinsModel;
  95. private PlayerQuit playerQuitModel;
  96. private Warp warpModel;
  97. private Spawns spawnModel;
  98. private Vip vipModel;
  99.  
  100. public AsyncCreateTables(Statement statement,
  101. Player playerModel,
  102. PlayerJoins playerJoinsModel,
  103. PlayerQuit playerQuitModel,
  104. Warp warp, Permission permission,
  105. Groups groups,
  106. Spawns spawns,
  107. Vip vip) {
  108. this.statement = statement;
  109. this.playerModel = playerModel;
  110. this.playerJoinsModel = playerJoinsModel;
  111. this.playerQuitModel = playerQuitModel;
  112. this.warpModel = warp;
  113. this.spawnModel = spawns;
  114. this.vipModel = vip;
  115. }
  116.  
  117. @Override
  118. public void run() {
  119. try {
  120. this.statement.executeUpdate(this.playerModel.getTableQuery());
  121. this.statement.executeUpdate(this.playerJoinsModel.getTableQuery());
  122. this.statement.executeUpdate(this.playerQuitModel.getTableQuery());
  123. this.statement.executeUpdate(this.warpModel.getTableQuery());
  124. this.statement.executeUpdate(this.spawnModel.getTableQuery());
  125. this.statement.executeUpdate(this.vipModel.getTableQuery());
  126. }catch (Exception e) {
  127. e.printStackTrace();
  128. }
  129. }
  130.  
  131. }
  132.  
  133. public void createTables() throws ClassNotFoundException, SQLException {
  134. Statement statement = (Statement) this.main.getCustomConnection().getConnection().createStatement();
  135.  
  136. Bukkit.getScheduler().runTaskAsynchronously(this.main, new AsyncCreateTables(statement,
  137. this.playerModel,
  138. this.playerJoinsModel,
  139. this.playerQuitModel,
  140. this.warpModel,
  141. this.permissionModel,
  142. this.groupModel,
  143. this.spawns,
  144. this.vipModel));
  145. }
  146.  
  147. public void createUpdateQuery(String query) throws ClassNotFoundException, SQLException {
  148. Statement statement = (Statement) this.main.getCustomConnection().getConnection().createStatement();
  149.  
  150. Bukkit.getScheduler().runTaskAsynchronously(this.main, new AsyncUpdate(statement, query));
  151. }
  152.  
  153. public void createSelectQuery(String query,ResultCallback result) throws ClassNotFoundException, SQLException {
  154. Statement statement = (Statement) this.main.getCustomConnection().getConnection().createStatement();
  155.  
  156. Bukkit.getScheduler().runTaskAsynchronously(this.main, new AsyncSelect(statement, query,result));
  157. }
  158.  
  159. public ResultSet createSelectQuerySync(String query) throws SQLException, ClassNotFoundException {
  160. Statement statement = (Statement) this.main.getCustomConnection().getConnection().createStatement();
  161. ResultSet result = statement.executeQuery(query);
  162. return result;
  163. }
  164.  
  165. public void createUpdateQuerySync(String query) throws SQLException, ClassNotFoundException {
  166. Statement statement = (Statement) this.main.getCustomConnection().getConnection().createStatement();
  167. statement.executeUpdate(query);
  168. }
  169.  
  170. public abstract class ResultCallback {
  171. public abstract void done(ResultSet res) throws SQLException, ClassNotFoundException;
  172. }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement