Guest User

Untitled

a guest
Oct 10th, 2018
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. package me.kamilkime.youtube;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.Random;
  8. import java.util.UUID;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.player.PlayerJoinEvent;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15.  
  16. public class Main extends JavaPlugin implements Listener{
  17.  
  18. public static final Random RAND = new Random();
  19. private Connection conn;
  20.  
  21. public void onEnable(){
  22. checkTable();
  23. try {
  24. loadData();
  25. } catch (SQLException e) {
  26. e.printStackTrace();
  27. }
  28. Bukkit.getPluginManager().registerEvents(this, this);
  29. }
  30.  
  31. public void onDisable(){
  32. try {
  33. saveData();
  34. } catch (SQLException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38.  
  39. private void checkTable(){
  40. openConnection();
  41. StringBuilder sb = new StringBuilder();
  42. sb.append("create table if not exists users(");
  43. sb.append("uuid varchar(100) not null,");
  44. sb.append("name varchar(50) not null,");
  45. sb.append("rank int not null,");
  46. sb.append("kills int not null,");
  47. sb.append("deaths int not null,");
  48. sb.append("primary key(uuid));");
  49. try {
  50. conn.createStatement().executeUpdate(sb.toString());
  51. } catch (SQLException e) {
  52. e.printStackTrace();
  53. }
  54. closeConnection();
  55. }
  56.  
  57. private void loadData() throws SQLException{
  58. openConnection();
  59. int i = 0;
  60. ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM `users`");
  61. while(rs.next()){
  62. User u = User.get(UUID.fromString(rs.getString("uuid")));
  63. u.setName(rs.getString("name"));
  64. u.setRank(rs.getInt("rank"));
  65. u.setKills(rs.getInt("kills"));
  66. u.setDeaths(rs.getInt("deaths"));
  67. i++;
  68.  
  69. }
  70. Bukkit.getConsoleSender().sendMessage("§a§lLoaded §6§l" + i + " §a§lusers");
  71. closeConnection();
  72. }
  73.  
  74. private void saveData() throws SQLException{
  75. openConnection();
  76. int i = 0;
  77. for(User u : UserUtils.getUsers()){
  78. StringBuilder sb = new StringBuilder();
  79. sb.append("INSERT INTO users (uuid, name, rank, kills, deaths) VALUES (");
  80. sb.append("'" + u.getUUID().toString() +"',");
  81. sb.append("'" + u.getName() +"',");
  82. sb.append("'" + u.getRank() +"',");
  83. sb.append("'" + u.getKills() +"',");
  84. sb.append("'" + u.getDeaths() +"'");
  85. sb.append(") ON DUPLICATE KEY UPDATE ");
  86. sb.append("name='" + u.getName() +"',");
  87. sb.append("rank='" + u.getRank() +"',");
  88. sb.append("kills='" + u.getKills() +"',");
  89. sb.append("deaths='" + u.getDeaths() +"';");
  90. conn.createStatement().executeUpdate(sb.toString());
  91. i++;
  92. }
  93. Bukkit.getConsoleSender().sendMessage("§a§lSaved §6§l" + i + " §a§lusers");
  94. closeConnection();
  95. }
  96.  
  97. private synchronized void openConnection(){
  98. if(!isConnected()){
  99. try{
  100. conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/youtube?user=root&password=");
  101. } catch(SQLException e){
  102. e.printStackTrace();
  103. }
  104. }
  105. }
  106.  
  107. private synchronized void closeConnection(){
  108. if(isConnected()){
  109. try{
  110. conn.close();
  111. } catch(SQLException e){
  112. e.printStackTrace();
  113. }
  114. }
  115. }
  116.  
  117. public boolean isConnected() {
  118. try{
  119. if(conn == null) return false;
  120. if(conn.isClosed()) return false;
  121. } catch(SQLException e){
  122. e.printStackTrace();
  123. }
  124. return true;
  125. }
  126.  
  127. @EventHandler
  128. public void onJoin(PlayerJoinEvent e){
  129. User u = User.get(e.getPlayer());
  130. switch (RAND.nextInt(4)){
  131. case 0:
  132. u.setRank(u.getRank() + 50);
  133. Bukkit.broadcastMessage("§aRank");
  134. break;
  135. case 1:
  136. u.setKills(u.getKills() + 1);
  137. Bukkit.broadcastMessage("§aKills");
  138. break;
  139. case 2:
  140. u.setDeaths(u.getDeaths() + 1);
  141. Bukkit.broadcastMessage("§aDeaths");
  142. break;
  143. case 3:
  144. u.setRank(u.getRank() + 50);
  145. u.setKills(u.getKills() + 1);
  146. u.setDeaths(u.getDeaths() + 1);
  147. Bukkit.broadcastMessage("§aAll");
  148. break;
  149. }
  150. }
  151. }
Add Comment
Please, Sign In to add comment