Advertisement
Guest User

Untitled

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