PlayerBank.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package me.km.playerbank;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import java.util.UUID;
  5. import me.km.KajetansMod;
  6. import me.km.databank.IStatement;
  7. public class PlayerBank
  8. {
  9. public PlayerBank()
  10. {
  11. KajetansMod.databank.execute("CREATE TABLE IF NOT EXISTS players ("
  12. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  13. + "uuid_1 BIGINT NOT NULL, "
  14. + "uuid_2 BIGINT NOT NULL, "
  15. + "name VARCHAR(20) NOT NULL, "
  16. + "UNIQUE INDEX (uuid_1, uuid_2));");
  17. }
  18. private final IStatement add = KajetansMod.databank.createStatement(
  19. "INSERT INTO players (uuid_1,uuid_2,name) VALUES (?,?,?);");
  20. public boolean add(UUID uuid, String name)
  21. {
  22. try
  23. {
  24. add.validate();
  25. add.setLong(1, uuid.getLeastSignificantBits());
  26. add.setLong(2, uuid.getMostSignificantBits());
  27. add.setString(3, name);
  28. add.executeUpdate();
  29. return true;
  30. }
  31. catch(SQLException ex)
  32. {
  33. ex.printStackTrace();
  34. return false;
  35. }
  36. }
  37. private final IStatement changeName = KajetansMod.databank.createStatement(
  38. "UPDATE players SET name=? WHERE uuid_1=? AND uuid_2=?;");
  39. public void changeName(UUID uuid, String name)
  40. {
  41. try
  42. {
  43. changeName.validate();
  44. changeName.setString(1, name);
  45. changeName.setLong(2, uuid.getLeastSignificantBits());
  46. changeName.setLong(3, uuid.getMostSignificantBits());
  47. changeName.executeUpdate();
  48. }
  49. catch(SQLException ex)
  50. {
  51. ex.printStackTrace();
  52. }
  53. }
  54. private final IStatement getId = KajetansMod.databank.createStatement(
  55. "SELECT id FROM players WHERE uuid_1=? AND uuid_2=?;");
  56. public int getId(UUID uuid)
  57. {
  58. try
  59. {
  60. getId.validate();
  61. getId.setLong(1, uuid.getLeastSignificantBits());
  62. getId.setLong(2, uuid.getMostSignificantBits());
  63. try(ResultSet rs = getId.executeQuery())
  64. {
  65. if(rs.next())
  66. {
  67. return rs.getInt(1);
  68. }
  69. return -1;
  70. }
  71. catch(SQLException ex)
  72. {
  73. ex.printStackTrace();
  74. }
  75. }
  76. catch(SQLException ex)
  77. {
  78. ex.printStackTrace();
  79. }
  80. return -1;
  81. }
  82. private final IStatement getUUIDfromID = KajetansMod.databank.createStatement(
  83. "SELECT uuid_1,uuid_2 FROM players WHERE id=?;");
  84. public UUID getUUIDfromID(int id)
  85. {
  86. try
  87. {
  88. getUUIDfromID.validate();
  89. getUUIDfromID.setInt(1, id);
  90. try(ResultSet rs = getUUIDfromID.executeQuery())
  91. {
  92. if(rs.next())
  93. {
  94. return new UUID(rs.getLong(2), rs.getLong(1));
  95. }
  96. }
  97. catch(SQLException ex)
  98. {
  99. ex.printStackTrace();
  100. }
  101. }
  102. catch(SQLException ex)
  103. {
  104. ex.printStackTrace();
  105. }
  106. return null;
  107. }
  108. private final IStatement getNamefromID = KajetansMod.databank.createStatement(
  109. "SELECT name FROM players WHERE id=?;");
  110. public String getNamefromID(int id)
  111. {
  112. try
  113. {
  114. getNamefromID.validate();
  115. getNamefromID.setInt(1, id);
  116. try(ResultSet rs = getNamefromID.executeQuery())
  117. {
  118. if(rs.next())
  119. {
  120. return rs.getString(1);
  121. }
  122. }
  123. catch(SQLException ex)
  124. {
  125. ex.printStackTrace();
  126. }
  127. }
  128. catch(SQLException ex)
  129. {
  130. ex.printStackTrace();
  131. }
  132. return "";
  133. }
  134. private final IStatement getUUID = KajetansMod.databank.createStatement(
  135. "SELECT uuid_1,uuid_2 FROM players WHERE name=?;");
  136. public UUID getUUID(String name)
  137. {
  138. try
  139. {
  140. getUUID.validate();
  141. getUUID.setString(1, name);
  142. try(ResultSet rs = getUUID.executeQuery())
  143. {
  144. if(rs.next())
  145. {
  146. return new UUID(rs.getLong(2), rs.getLong(1));
  147. }
  148. }
  149. catch(Exception ex)
  150. {
  151. ex.printStackTrace();
  152. }
  153. }
  154. catch(SQLException ex)
  155. {
  156. ex.printStackTrace();
  157. }
  158. return null;
  159. }
  160. }