Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.93 KB | None | 0 0
  1. package com.vanishedd.spongetags.database;
  2.  
  3. import com.vanishedd.spongetags.SpongeTags;
  4. import com.vanishedd.spongetags.Tag;
  5. import org.spongepowered.api.entity.living.player.Player;
  6.  
  7. import java.sql.*;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.UUID;
  11.  
  12. public class Queries {
  13. private static SpongeTags plugin = SpongeTags.getInstance();
  14. private static Connection connection = plugin.connection;
  15.  
  16. public static void addTag(Player player, Tag tag) {
  17. if (hasTag(player, tag)) {
  18. return;
  19. }
  20.  
  21. try {
  22. PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `tags` (playerUUID, tag, active, info, uuid) values(?, ?, ?, ?, ?)");
  23. preparedStatement.setString(1, player.getUniqueId().toString());
  24. preparedStatement.setString(2, tag.niceName);
  25. preparedStatement.setInt(3, 0);
  26. preparedStatement.setString(4, "");
  27. preparedStatement.setString(5, UUID.randomUUID().toString());
  28.  
  29. preparedStatement.executeUpdate();
  30. preparedStatement.close();
  31. } catch (SQLException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35.  
  36. public static void addTags(Player player, Tag[] tags) {
  37. for (Tag tag : tags) {
  38. addTag(player, tag);
  39. }
  40. }
  41.  
  42. public static void checkIfTableExists(String table, String keys) {
  43. try {
  44. Statement statement = connection.createStatement();
  45. statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + table + "(" + keys + ")");
  46. } catch (SQLException e) {
  47. e.printStackTrace();
  48. }
  49. }
  50.  
  51. public static String getActiveTag(Player player) {
  52. String playerUuid = player.getUniqueId().toString();
  53.  
  54. try {
  55. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND active=?");
  56. preparedStatement.setString(1, playerUuid);
  57. preparedStatement.setInt(2, 1);
  58.  
  59. ResultSet resultSet = preparedStatement.executeQuery();
  60.  
  61. if (resultSet.next()) {
  62. String tag = resultSet.getString("tag");
  63.  
  64. resultSet.close();
  65. preparedStatement.close();
  66. return tag;
  67. }
  68.  
  69. resultSet.close();
  70. preparedStatement.close();
  71. } catch (SQLException e) {
  72. return null;
  73. }
  74. return null;
  75. }
  76.  
  77. public static String getActiveTagInfo(Player player) {
  78. String playerUuid = player.getUniqueId().toString();
  79.  
  80. try {
  81. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND active=?");
  82. preparedStatement.setString(1, playerUuid);
  83. preparedStatement.setInt(2, 1);
  84.  
  85. ResultSet resultSet = preparedStatement.executeQuery();
  86.  
  87. if (resultSet.next()) {
  88. String info = resultSet.getString("info");
  89.  
  90. resultSet.close();
  91. preparedStatement.close();
  92. return info;
  93. }
  94.  
  95. resultSet.close();
  96. preparedStatement.close();
  97. } catch (SQLException e) {
  98. return null;
  99. }
  100. return null;
  101. }
  102.  
  103. public static List<String> getTags(Player player) {
  104. String playerUuid = player.getUniqueId().toString();
  105. List<String> tags = new ArrayList<>();
  106.  
  107. try {
  108. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=?");
  109. preparedStatement.setString(1, playerUuid);
  110.  
  111. ResultSet resultSet = preparedStatement.executeQuery();
  112.  
  113. while (resultSet.next()) {
  114. if (tags.contains(resultSet.getString("tag"))) {
  115. continue;
  116. }
  117.  
  118. tags.add(resultSet.getString("tag"));
  119. }
  120.  
  121. resultSet.close();
  122. preparedStatement.close();
  123. return tags;
  124. } catch (SQLException e) {
  125. return tags;
  126. }
  127. }
  128.  
  129. public static boolean hasTag(Player player, Tag tag) {
  130. try {
  131. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND tag=?");
  132. preparedStatement.setString(1, player.getUniqueId().toString());
  133. preparedStatement.setString(2, tag.niceName);
  134.  
  135. ResultSet resultSet = preparedStatement.executeQuery();
  136. boolean next = resultSet.next();
  137.  
  138. resultSet.close();
  139. preparedStatement.close();
  140. return next;
  141. } catch (SQLException e) {
  142. return false;
  143. }
  144. }
  145.  
  146. private static void removeActiveTag(Player player) {
  147. String playerUuid = player.getUniqueId().toString();
  148.  
  149. try {
  150. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND active=?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
  151. preparedStatement.setString(1, playerUuid);
  152. preparedStatement.setInt(2, 1);
  153.  
  154. ResultSet resultSet = preparedStatement.executeQuery();
  155.  
  156. while (resultSet.next()) {
  157. resultSet.updateInt("active", 0);
  158. resultSet.updateRow();
  159. }
  160.  
  161. resultSet.close();
  162. preparedStatement.close();
  163. } catch (SQLException e) {
  164. e.printStackTrace();
  165. }
  166. }
  167.  
  168. public static boolean removeTag(Player player, Tag tag) {
  169. String playerUuid = player.getUniqueId().toString();
  170.  
  171. try {
  172. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND tag=?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
  173. preparedStatement.setString(1, playerUuid);
  174. preparedStatement.setString(2, tag.niceName);
  175.  
  176. ResultSet resultSet = preparedStatement.executeQuery();
  177.  
  178. if (resultSet.next()) {
  179. resultSet.deleteRow();
  180. resultSet.close();
  181. preparedStatement.close();
  182. return true;
  183. }
  184. } catch (SQLException e) {
  185. e.printStackTrace();
  186. }
  187. return false;
  188. }
  189.  
  190. public static void removeTagFromAll(Tag tag) {
  191. try {
  192. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE tag=?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
  193. preparedStatement.setString(1, tag.niceName);
  194.  
  195. ResultSet resultSet = preparedStatement.executeQuery();
  196.  
  197. while (resultSet.next()) {
  198. resultSet.deleteRow();
  199. }
  200.  
  201. resultSet.close();
  202. preparedStatement.close();
  203. } catch (SQLException e) {
  204. e.printStackTrace();
  205. }
  206. }
  207.  
  208. public static void setActiveTag(Player player, Tag tag, String info) {
  209. String playerUuid = player.getUniqueId().toString();
  210.  
  211. removeActiveTag(player);
  212. try {
  213. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `tags` WHERE playerUUID=? AND tag=?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
  214. preparedStatement.setString(1, playerUuid);
  215. preparedStatement.setString(2, tag.niceName);
  216.  
  217. ResultSet resultSet = preparedStatement.executeQuery();
  218.  
  219. if (resultSet.next()) {
  220. resultSet.updateInt("active", 1);
  221. resultSet.updateString("info", info);
  222. resultSet.updateRow();
  223. }
  224.  
  225. resultSet.close();
  226. preparedStatement.close();
  227. } catch (SQLException e) {
  228. e.printStackTrace();
  229. }
  230. }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement