Advertisement
corentingui

Untitled

Mar 29th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. package listeners;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.util.ArrayList;
  9. import java.util.UUID;
  10.  
  11. import account.Account;
  12. import main.Main;
  13. import net.md_5.bungee.api.chat.TextComponent;
  14. import net.md_5.bungee.api.event.PostLoginEvent;
  15. import net.md_5.bungee.api.plugin.Listener;
  16. import net.md_5.bungee.event.EventHandler;
  17. import sql.DatabaseManager;
  18.  
  19. public class ProxyJoinListener implements Listener{
  20.     @EventHandler
  21.     public void onPlayerJoin(PostLoginEvent event) {
  22.        
  23.         final UUID uuid = event.getPlayer().getUniqueId();
  24.         final String pseudo = event.getPlayer().getName();
  25.        
  26.         // Recupération des informations de la base de données account
  27.         try {
  28.             final Connection connection = DatabaseManager.ACCOUNT.getDataBaseAccess().getConection();
  29.            
  30.             final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM accounts WHERE uuid = ?");
  31.            
  32.             preparedStatement.setString(1, uuid.toString());
  33.             preparedStatement.executeQuery();
  34.            
  35.             final ResultSet resultSet = preparedStatement.getResultSet();
  36.            
  37.             if(resultSet.next()) {
  38.                 event.getPlayer().sendMessage(new TextComponent("votre compte a été trouvé"));
  39.                
  40.                 final int id = resultSet.getInt("id");
  41.                
  42.                 final int money = resultSet.getInt("money");
  43.                
  44.                 final String rank = resultSet.getString("grade");
  45.                
  46.                 final Account account = new Account(id ,pseudo, uuid, money, rank);
  47.                
  48.                
  49.                 final ArrayList<Account> accounts = Main.INSTANCE.getAccounts();
  50.                
  51.                 if(accounts.contains(account)) {           
  52.                     accounts.remove(account);
  53.                 }
  54.                
  55.                 accounts.add(account);
  56.                
  57.             }
  58.             else {
  59.                 createNewAccount(uuid, pseudo);
  60.             }
  61.            
  62.             connection.close();
  63.            
  64.            
  65.         } catch (SQLException e) {
  66.             e.printStackTrace();
  67.         }
  68.        
  69.        
  70.     }
  71.    
  72.     private void createNewAccount(UUID uuid, String pseudo) throws SQLException {
  73.         final Account account = new Account(0, pseudo, uuid, 500, "Player");
  74.        
  75.         final Connection connection = DatabaseManager.ACCOUNT.getDataBaseAccess().getConection();
  76.        
  77.         final PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO accounts (pseudo, uuid, money, grade) VALUES (?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
  78.        
  79.         preparedStatement.setString(1, pseudo);
  80.        
  81.         preparedStatement.setString(2, uuid.toString());
  82.        
  83.         preparedStatement.setInt(3, account.getCoins());
  84.        
  85.         preparedStatement.setString(4, account.getRank());
  86.        
  87.        
  88.         final int row = preparedStatement.executeUpdate();
  89.        
  90.         final ResultSet resultSet = preparedStatement.getGeneratedKeys();
  91.        
  92.         if(row > 0 && resultSet.next()) {
  93.            
  94.             final int id = resultSet.getInt(1);
  95.            
  96.             account.setId(id);
  97.            
  98.             Main.INSTANCE.getAccounts().add(account);
  99.         }
  100.     }
  101.    
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement