Plugin Résolu Problème SQL

Re-bonjour,

Oui, je l'appelle dans la classe principal.

Code:
package eu.heroria.iceorange92;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.plugin.java.JavaPlugin;

import eu.heroria.iceorange92.Npc.NpcListener;
import eu.heroria.iceorange92.data.Rank;
import eu.heroria.iceorange92.data.PlayerData;
import eu.heroria.iceorange92.data.PlayerDataManager;
import eu.heroria.iceorange92.data.PlayerXpManager;
import eu.heroria.iceorange92.data.SqlConnection;

public class Main extends JavaPlugin implements Listener {
    public SqlConnection sql;
    public PlayerDataManager dataManager = new PlayerDataManager(this);
    public Map<Player, PlayerData> dataPlayers = new HashMap<>();
    public Map<UUID, PermissionAttachment> playerPermission = new HashMap<>();
    
    
    public void onEnable() {
        sql = new SqlConnection(this, "jdbc:mysql://", "localhost", "heroria", "root", "");
        sql.connection();
        getServer().getPluginManager().registerEvents(new PlayerXpManager(this), this);
        getServer().getPluginManager().registerEvents(new NpcListener(this), this);
        getServer().getPluginManager().registerEvents(this, this);
    }
    
    public void onDisable() {
        for (Player all : Bukkit.getServer().getOnlinePlayers()){
            all.kickPlayer(Bukkit.getShutdownMessage());
        }
        sql.disconnect();
    }
    
    @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        Player player = (Player)event.getPlayer();
        sql.createAccount(player);
        dataManager.loadPlayerData(player);
    }
    
    @EventHandler
    public void onQuit(PlayerQuitEvent event) {
        Player player = (Player)event.getPlayer();
        dataManager.savePlayerData(player);
    }
    
    @EventHandler
    public void onKick(PlayerKickEvent event) {
        Player player = (Player)event.getPlayer();
        dataManager.savePlayerData(player);
    }
    
    public void setupPermissions(Player player) {
        PermissionAttachment attachment = player.addAttachment(this);
        this.playerPermission.put(player.getUniqueId(), attachment);
        permissionSetter(player, player.getUniqueId());
    }

    private void permissionSetter(Player player, UUID uuid) {
        PermissionAttachment attachment = this.playerPermission.get(uuid);
        Rank rank = sql.getRank(player);
        switch(rank) {
            case VIP:
                attachment.setPermission("minecraft.command.me", true);
                break;
            case MODO:
                attachment.setPermission("minecraft.command.kill", true);
                break;
            
            case CM:
                attachment.setPermission("minecraft.command.*", true);
                attachment.setPermission("worldedit.selection.pos", true);
                attachment.setPermission("worldedit.*", true);
                break;
                
            case DEV:
                attachment.setPermission("worldedit.*", true);
                attachment.setPermission("minecraft.command.*", true);
                attachment.setPermission("worldguard.*", true);
                attachment.setPermission("bukkit.command.restart", true);
                break;
                
            case ADMIN:
                attachment.setPermission("*", true);
                break;
                
            default:
                attachment.setPermission("admintools.player", true);
                break;
        
        }
    }
}
 
Salut,

Si tu n'as pas touché à la class SqlConnection et que l'erreur est toujours la même. A savoir que l'erreur se trouve à la ligne 83, alors cela veut dire que le soucis est ici:
PHP:
            PreparedStatement q = connection.prepareStatement("SELECT uuid FROM players WHERE uuid = ?");
            q.setString(1, player.getUniqueId().toString());
            ResultSet resultat = q.executeQuery();
            boolean hasAccount = resultat.next();
            q.close();
            return hasAccount;
L'erreur serait donc au "q.close()". Ce qui n'a pas beaucoup de sens vu que tu as utilisé avant déjà la variable "q". Je t'invite à vérifier si l'erreur n'a pas changée et/ou si tu as modifié ta class. Si tel est le cas, il faut nous reposter les deux pour que nous puissions correctement t'aider.


Cordialement,
Detobel36
 
Bonjour,

Je vous reposte le code de SQLConnection.java et Main.java ainsi que mes derniers logs.

Main.java
Code:
package eu.heroria.iceorange92;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.plugin.java.JavaPlugin;

import eu.heroria.iceorange92.Npc.NpcListener;
import eu.heroria.iceorange92.data.Rank;
import eu.heroria.iceorange92.data.PlayerData;
import eu.heroria.iceorange92.data.PlayerDataManager;
import eu.heroria.iceorange92.data.PlayerXpManager;
import eu.heroria.iceorange92.data.SqlConnection;

public class Main extends JavaPlugin implements Listener {
    public SqlConnection sql;
    public PlayerDataManager dataManager = new PlayerDataManager(this);
    public Map<Player, PlayerData> dataPlayers = new HashMap<>();
    public Map<UUID, PermissionAttachment> playerPermission = new HashMap<>();
   
   
    public void onEnable() {
        sql = new SqlConnection(this, "jdbc:mysql://", "localhost", "heroria", "root", "");
        sql.connection();
        getServer().getPluginManager().registerEvents(new PlayerXpManager(this), this);
        getServer().getPluginManager().registerEvents(new NpcListener(this), this);
        getServer().getPluginManager().registerEvents(this, this);
    }
   
    public void onDisable() {
        for (Player all : Bukkit.getServer().getOnlinePlayers()){
            all.kickPlayer(Bukkit.getShutdownMessage());
        }
        sql.disconnect();
    }
   
    @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        Player player = (Player)event.getPlayer();
        sql.createAccount(player);
        dataManager.loadPlayerData(player);
    }
   
    @EventHandler
    public void onQuit(PlayerQuitEvent event) {
        Player player = (Player)event.getPlayer();
        dataManager.savePlayerData(player);
    }
   
    @EventHandler
    public void onKick(PlayerKickEvent event) {
        Player player = (Player)event.getPlayer();
        dataManager.savePlayerData(player);
    }
   
    public void setupPermissions(Player player) {
        PermissionAttachment attachment = player.addAttachment(this);
        this.playerPermission.put(player.getUniqueId(), attachment);
        permissionSetter(player, player.getUniqueId());
    }

    private void permissionSetter(Player player, UUID uuid) {
        PermissionAttachment attachment = this.playerPermission.get(uuid);
        Rank rank = sql.getRank(player);
        switch(rank) {
            case VIP:
                attachment.setPermission("minecraft.command.me", true);
                break;
            case MODO:
                attachment.setPermission("minecraft.command.kill", true);
                break;
           
            case CM:
                attachment.setPermission("minecraft.command.*", true);
                attachment.setPermission("worldedit.selection.pos", true);
                attachment.setPermission("worldedit.*", true);
                break;
               
            case DEV:
                attachment.setPermission("worldedit.*", true);
                attachment.setPermission("minecraft.command.*", true);
                attachment.setPermission("worldguard.*", true);
                attachment.setPermission("bukkit.command.restart", true);
                break;
               
            case ADMIN:
                attachment.setPermission("*", true);
                break;
               
            default:
                attachment.setPermission("admintools.player", true);
                break;
       
        }
    }
}

SQLConnection.java
Code:
package eu.heroria.iceorange92.data;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.bukkit.entity.Player;

import eu.heroria.iceorange92.Main;
import eu.heroria.iceorange92.data.PlayerData;
import eu.heroria.iceorange92.data.Rank;

public class SqlConnection {
    private Connection connection;
    private String urlbase, host, database, user, pass;
    private Main pl;
   
   
    public SqlConnection(Main pl, String urlbase, String host, String database, String user, String pass) {
        this.pl = pl;
        this.urlbase = urlbase;
        this.host = host;
        this.database = database;
        this.user = user;
        this.pass = pass;
    }
   
    public void connection() {
        if(!isConnected()) {
            try {
                connection = DriverManager.getConnection(urlbase + host + "/" + database, user, pass);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
   
    public void disconnect() {
        if(isConnected()) {
            try {
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
   
    public boolean isConnected() {
        return connection != null;
    }
   
    public void createAccount(Player player) {
        if(!hasAccount(player)) {
            //INSERT
            try {
                PreparedStatement q = connection.prepareStatement("INSERT INTO players(uuid,balance,rank,faction,xp,reputation) VALUES (?,?,?,?,?,?)");
                q.setString(1, player.getUniqueId().toString());
                q.setInt(2, 100);
                q.setInt(3, Rank.JOUEUR.getPower());
                q.setInt(4, 0);
                q.setInt(5, 1);
                q.setInt(6, 100);
                q.execute();
                q.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
   
     public boolean hasAccount(Player player) {
            try {
                PreparedStatement q = connection.prepareStatement("SELECT uuid FROM players WHERE uuid = ?");
                q.setString(1, player.getUniqueId().toString());
                ResultSet resultat = q.executeQuery();
                boolean hasAccount = resultat.next();
                q.close();
                return hasAccount;
            } catch (SQLException e) {
                System.out.println("SQLException");
                e.printStackTrace();
                return false;
            }
     }
   
    public int getBalance(Player player) {
        //SELECT
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            return playerData.getBalance();
        }
        return 0;
    }
   
    public int getFaction(Player player) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            return playerData.getFaction();
        }
        return 0;
    }
   
    public void setFaction(Player player, int faction) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            playerData.setFaction(faction);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public int getXp(Player player) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            return playerData.getXp();
        }
        return 0;
    }
   
    public void setXp(Player player, int xp) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            playerData.setFaction(xp);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public int getReputation(Player player) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            return playerData.getReputation();
        }
        return 0;
    }
   
    public void setReputation(Player player, int reputation) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            playerData.setFaction(reputation);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public void setMoney(Player player, int amount) {
        if(pl.dataPlayers.containsKey(player));{
            PlayerData playerData = pl.dataPlayers.get(player);
            playerData.setBalance(amount);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public void addMoney(Player player, int amount) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            int balance = playerData.getBalance();
            int newBalance = balance + amount;
            playerData.setBalance(newBalance);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public boolean removeMoney(Player player, int amount) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            int balance = playerData.getBalance();
            if(balance < amount) {
                player.sendMessage("§4[Heroria]Désolé, vous n'avez pas assez d'argent pour effectuer cette transaction. On se fait un calin ?");
                return true;
            }
            int newBalance = balance - amount;
            playerData.setBalance(newBalance);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
        return false;
    }
   
    public void setRank(Player player, Rank rank) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            playerData.setRank(rank);
            pl.dataPlayers.remove(player);
            pl.dataPlayers.put(player, playerData);
        }
    }
   
    public Rank getRank(Player player) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            return playerData.getRank();
        }
        return Rank.JOUEUR;
    }
   
    public PlayerData createPlayerData(Player player) {
        if(!pl.dataPlayers.containsKey(player)) {
            try {
                PreparedStatement rs = connection.prepareStatement("SELECT balance, rank, faction, reputation FROM players WHERE uuid = ?");
                rs.setString(1, player.getUniqueId().toString());
                ResultSet resultats = rs.executeQuery();
                int balance = 0;
                int faction = 0;
                int xp = 1;
                int reputation = 100;
                Rank rank = Rank.JOUEUR;
                while(resultats.next()) {
                    faction = resultats.getInt("faction");
                    balance = resultats.getInt("balance");
                    xp = resultats.getInt("xp");
                    reputation = resultats.getInt("reputation");
                    rank = Rank.powerToRank(resultats.getInt("rank"));
                }
                PlayerData playerData = new PlayerData();
                playerData.setBalance(balance);
                playerData.setRank(rank);
                playerData.setFaction(faction);
                playerData.setReputation(reputation);
                playerData.setXp(xp);
                rs.close();
                return playerData;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return new PlayerData();
            }
        }
        return null;
    }
   
    public void updatePlayerData(Player player) {
        if(pl.dataPlayers.containsKey(player)) {
            PlayerData playerData = pl.dataPlayers.get(player);
            int balance = playerData.getBalance();
            Rank rank = playerData.getRank();
            int power = rank.getPower();
            int faction = playerData.getFaction();
            int xp = playerData.getXp();
            int reputation = playerData.getReputation();
            PreparedStatement q;
            try {
                q = connection.prepareStatement("UPDATE players SET rank = ?, balance = ?, faction = ?, xp = ?, reputation = ? WHERE uuid = ?");
                q.setInt(1, power);
                q.setInt(2, balance);
                q.setInt(3, faction);
                q.setInt(4, xp);
                q.setInt(5, reputation);
                q.setString(6, player.getUniqueId().toString());
                q.executeUpdate();
                q.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
   
    public Connection getConnection() {
        return connection;
    }
}

lasted.log
Code:
[11:42:43] [Server thread/INFO]: Loading properties
[11:42:43] [Server thread/INFO]: Default game type: SURVIVAL
[11:42:43] [Server thread/INFO]: This server is running CraftBukkit version git-Spigot-4bd94dc-bdcc7c7 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)
[11:42:44] [Server thread/INFO]: Debug logging is disabled
[11:42:44] [Server thread/INFO]: Server Ping Player Sample Count: 12
[11:42:44] [Server thread/INFO]: Using 4 threads for Netty based IO
[11:42:44] [Server thread/INFO]: Generating keypair
[11:42:44] [Server thread/INFO]: Starting Minecraft server on *:25565
[11:42:44] [Server thread/INFO]: Using default channel type
[11:42:44] [Server thread/INFO]: Set PluginClassLoader as parallel capable
[11:42:44] [Server thread/INFO]: [HeroriaCore] Loading HeroriaCore v1.0
[11:42:44] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[11:42:44] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
[11:42:44] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
[11:42:44] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
[11:42:44] [Server thread/INFO]: **** Beginning UUID conversion, this may take A LONG time ****
[11:42:44] [Server thread/INFO]: Preparing level "world"
[11:42:44] [Server thread/INFO]: -------- World Settings For [world] --------
[11:42:44] [Server thread/INFO]: Mob Spawn Range: 4
[11:42:44] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[11:42:44] [Server thread/INFO]: Random Lighting Updates: false
[11:42:44] [Server thread/INFO]: Structure Info Saving: true
[11:42:44] [Server thread/INFO]: Cactus Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Cane Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Melon Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Mushroom Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Sapling Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Wheat Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: NetherWart Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Vine Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Cocoa Growth Modifier: 100%
[11:42:44] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[11:42:44] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[11:42:44] [Server thread/INFO]: Max TNT Explosions: 100
[11:42:44] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[11:42:44] [Server thread/INFO]: Item Despawn Rate: 6000
[11:42:44] [Server thread/INFO]: Item Merge Radius: 2.5
[11:42:44] [Server thread/INFO]: Arrow Despawn Rate: 1200
[11:42:44] [Server thread/INFO]: View Distance: 10
[11:42:44] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[11:42:44] [Server thread/INFO]: Experience Merge Radius: 3.0
[11:42:44] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617 Monument: 10387313 Slime: 987234911
[11:42:44] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
[11:42:44] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
[11:42:45] [Server thread/INFO]: -------- World Settings For [world_nether] --------
[11:42:45] [Server thread/INFO]: Mob Spawn Range: 4
[11:42:45] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[11:42:45] [Server thread/INFO]: Random Lighting Updates: false
[11:42:45] [Server thread/INFO]: Structure Info Saving: true
[11:42:45] [Server thread/INFO]: Cactus Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Cane Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Melon Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Mushroom Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Sapling Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Wheat Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: NetherWart Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Vine Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Cocoa Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[11:42:45] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[11:42:45] [Server thread/INFO]: Max TNT Explosions: 100
[11:42:45] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[11:42:45] [Server thread/INFO]: Item Despawn Rate: 6000
[11:42:45] [Server thread/INFO]: Item Merge Radius: 2.5
[11:42:45] [Server thread/INFO]: Arrow Despawn Rate: 1200
[11:42:45] [Server thread/INFO]: View Distance: 10
[11:42:45] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[11:42:45] [Server thread/INFO]: Experience Merge Radius: 3.0
[11:42:45] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617 Monument: 10387313 Slime: 987234911
[11:42:45] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
[11:42:45] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
[11:42:45] [Server thread/INFO]: -------- World Settings For [world_the_end] --------
[11:42:45] [Server thread/INFO]: Mob Spawn Range: 4
[11:42:45] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[11:42:45] [Server thread/INFO]: Random Lighting Updates: false
[11:42:45] [Server thread/INFO]: Structure Info Saving: true
[11:42:45] [Server thread/INFO]: Cactus Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Cane Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Melon Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Mushroom Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Sapling Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Wheat Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: NetherWart Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Vine Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Cocoa Growth Modifier: 100%
[11:42:45] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[11:42:45] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[11:42:45] [Server thread/INFO]: Max TNT Explosions: 100
[11:42:45] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[11:42:45] [Server thread/INFO]: Item Despawn Rate: 6000
[11:42:45] [Server thread/INFO]: Item Merge Radius: 2.5
[11:42:45] [Server thread/INFO]: Arrow Despawn Rate: 1200
[11:42:45] [Server thread/INFO]: View Distance: 10
[11:42:45] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[11:42:45] [Server thread/INFO]: Experience Merge Radius: 3.0
[11:42:45] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617 Monument: 10387313 Slime: 987234911
[11:42:45] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
[11:42:45] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
[11:42:45] [Server thread/INFO]: Preparing start region for level 0 (Seed: 8091180134227560537)
[11:42:46] [Server thread/INFO]: Preparing spawn area: 12%
[11:42:47] [Server thread/INFO]: Preparing spawn area: 89%
[11:42:48] [Server thread/INFO]: Preparing start region for level 1 (Seed: 8091180134227560537)
[11:42:49] [Server thread/INFO]: Preparing start region for level 2 (Seed: -5039012617705349796)
[11:42:49] [Server thread/INFO]: [HeroriaCore] Enabling HeroriaCore v1.0
[11:42:49] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[11:42:49] [Server thread/INFO]: Done (4,586s)! For help, type "help" or "?"
[11:43:55] [User Authenticator #1/INFO]: UUID of player IceOrange92 is 564aa009-2a91-3bc0-a77e-a95bf878a102
[11:43:55] [Server thread/INFO]: ln81SqlConnection
[11:43:55] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to HeroriaCore v1.0
org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.PlayerList.onPlayerJoin(PlayerList.java:346) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.PlayerList.a(PlayerList.java:166) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.LoginListener.b(LoginListener.java:159) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.LoginListener.e(LoginListener.java:57) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:233) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.ServerConnection.c(ServerConnection.java:140) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:845) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
Caused by: java.lang.NullPointerException
    at eu.heroria.iceorange92.data.SqlConnection.hasAccount(SqlConnection.java:83) ~[?:?]
    at eu.heroria.iceorange92.data.SqlConnection.createAccount(SqlConnection.java:59) ~[?:?]
    at eu.heroria.iceorange92.Main.onJoin(Main.java:49) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_191]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_191]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_191]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_191]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.2.jar:git-Spigot-4bd94dc-bdcc7c7]
    ... 14 more
[11:43:55] [Server thread/INFO]: IceOrange92[/127.0.0.1:52541] logged in with entity id 333 at ([world]-12.084527453903307, 26.0, -6.4200437694109835)
[11:44:19] [Server thread/INFO]: IceOrange92 was shot by Skeleton
[11:46:32] [Server thread/INFO]: IceOrange92 lost connection: Disconnected
[11:46:32] [Server thread/INFO]: IceOrange92 left the game
 
Essaye de charger le driver avant la connexion, avec un truc du style :
Code:
static {
   Class.forName("com.mysql.jdbc.Driver");
}
 
Bonjour,

Je crois avoir résolu le problème grâce à une autre méthode. Pour je ne sais quelle raison, les fichiers java n'était pas recompilé, même quand je cliquais sur build. Dans les logs, j'avais remarqué que la ligne System.out.println("ln81SQLConnection"); que j'avais supprimé s'exécuter. Le problème devait bien venir de la ligne sql.connection(); dans la classe principal. Je vérifie si tout marche et je mets le sujet en résolu si tout marche bien.

Merci à tous pour votre aide.

Edit: j'avais oublié de mettre xp dans la requete SQL CreatePlayerData ligne 206