Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package listeners;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.UUID;
- import account.Account;
- import main.Main;
- import net.md_5.bungee.api.chat.TextComponent;
- import net.md_5.bungee.api.event.PostLoginEvent;
- import net.md_5.bungee.api.plugin.Listener;
- import net.md_5.bungee.event.EventHandler;
- import sql.DatabaseManager;
- public class ProxyJoinListener implements Listener{
- @EventHandler
- public void onPlayerJoin(PostLoginEvent event) {
- final UUID uuid = event.getPlayer().getUniqueId();
- final String pseudo = event.getPlayer().getName();
- // Recupération des informations de la base de données account
- try {
- final Connection connection = DatabaseManager.ACCOUNT.getDataBaseAccess().getConection();
- final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM accounts WHERE uuid = ?");
- preparedStatement.setString(1, uuid.toString());
- preparedStatement.executeQuery();
- final ResultSet resultSet = preparedStatement.getResultSet();
- if(resultSet.next()) {
- event.getPlayer().sendMessage(new TextComponent("votre compte a été trouvé"));
- final int id = resultSet.getInt("id");
- final int money = resultSet.getInt("money");
- final String rank = resultSet.getString("grade");
- final Account account = new Account(id ,pseudo, uuid, money, rank);
- final ArrayList<Account> accounts = Main.INSTANCE.getAccounts();
- if(accounts.contains(account)) {
- accounts.remove(account);
- }
- accounts.add(account);
- }
- else {
- createNewAccount(uuid, pseudo);
- }
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- private void createNewAccount(UUID uuid, String pseudo) throws SQLException {
- final Account account = new Account(0, pseudo, uuid, 500, "Player");
- final Connection connection = DatabaseManager.ACCOUNT.getDataBaseAccess().getConection();
- final PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO accounts (pseudo, uuid, money, grade) VALUES (?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
- preparedStatement.setString(1, pseudo);
- preparedStatement.setString(2, uuid.toString());
- preparedStatement.setInt(3, account.getCoins());
- preparedStatement.setString(4, account.getRank());
- final int row = preparedStatement.executeUpdate();
- final ResultSet resultSet = preparedStatement.getGeneratedKeys();
- if(row > 0 && resultSet.next()) {
- final int id = resultSet.getInt(1);
- account.setId(id);
- Main.INSTANCE.getAccounts().add(account);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement