diff --git a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayedTimeHandler.java b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayedTimeHandler.java
index 8358b74af1ee76dc51f8ffc624b3cfb91b2c3d76..3c145e0550863cc7a7254476d2b8406983f13b3f 100644
--- a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayedTimeHandler.java
+++ b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayedTimeHandler.java
@@ -114,6 +114,7 @@ public class PlayedTimeHandler implements dataHandler {
         UUID playerUuid = player.getUniqueId();
         LocalDateTime timeNow = LocalDateTime.now();
         Duration duration = Duration.between(timeNow, userSessionJoinDateTime.get(usersIndexes.indexOf(playerUuid)));
+
         long playedTimeInSeconds = Math.abs(duration.toSeconds());
         long actualPlayedTime = userStoredPlayedTimeBeforeJoining.get(usersIndexes.indexOf(playerUuid)) + playedTimeInSeconds;
 
@@ -122,6 +123,7 @@ public class PlayedTimeHandler implements dataHandler {
 
             if (playerGroupName != null && !Objects.equals(playerGroupName, playersAccountUpgradeGroup.getName())) {
                 Group playerGroup = Main.luckPermsApi.getGroupManager().getGroup(playerGroupName);
+
                 if (playerGroup == null) {
                     throw new RuntimeException("Le groupe " + playerGroupName + " n'existe pas !");
                 }
@@ -130,6 +132,7 @@ public class PlayedTimeHandler implements dataHandler {
                     if (playerGroup.getWeight().getAsInt() < playersAccountUpgradeGroup.getWeight().getAsInt()) {
                         ConsoleLog.info(ChatColor.GREEN + player.getName() + ChatColor.LIGHT_PURPLE + " a débloqué le rôle des joueurs " + ChatColor.GOLD + "habitués" + ChatColor.LIGHT_PURPLE + "!");
                         User playerLuckPerms = Main.luckPermsApi.getUserManager().getUser(player.getUniqueId());
+
                         if (playerLuckPerms == null) {
                             throw new RuntimeException("LuckPerms ne semble pas disposer de donnée sur le joueur " + player.getName() + " UUID:" + player.getUniqueId());
                         }
@@ -140,6 +143,7 @@ public class PlayedTimeHandler implements dataHandler {
                         Main.luckPermsApi.getUserManager().saveUser(playerLuckPerms);
 
                         int requiredPlayedTimeInHours = requiredPlayedTimeForUpgradingPlayersAccount / 60 / 60;
+
                         player.sendMessage(ChatColor.GREEN + "Bravo et un grand merci à toi " + ChatColor.YELLOW + player.getName() + ChatColor.GREEN + "!");
                         player.sendMessage(ChatColor.GREEN + "Tu as joué pendant plus de" + ChatColor.GOLD + requiredPlayedTimeInHours + "H " + ChatColor.GREEN + "sur le serveur !!!");
                         player.sendMessage("Pour te récompenser, nous te donnons le rôle des joueurs " + ChatColor.GOLD + "habitués" + ChatColor.RESET + "!");
diff --git a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayerDataHandler.java b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayerDataHandler.java
index 68b1056b9b9162f7011076c090dd738c8eea2968..65d755e6b69bc1e52285507f2019f4012158b632 100644
--- a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayerDataHandler.java
+++ b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/dataHandlers/PlayerDataHandler.java
@@ -2,6 +2,7 @@ package com.slprojects.slcraftplugin.parallelTasks.dataHandlers;
 
 import com.slprojects.slcraftplugin.Main;
 import com.slprojects.slcraftplugin.utils.ConsoleLog;
+import com.slprojects.slcraftplugin.utils.Database;
 import org.bukkit.ChatColor;
 import org.bukkit.Statistic;
 import org.bukkit.entity.Player;
@@ -73,36 +74,19 @@ public class PlayerDataHandler implements dataHandler {
 
     // Fonctions
     private boolean insertPlayerName(Player player) {
-        boolean returnValue = false;
-        try {
-            // On va d'abord regarder si on a déjà renseigné le nom du joueur
-            PreparedStatement rechercheUtilisateur = con.prepareStatement("SELECT * FROM site_userSetting WHERE uuid = ? AND name = 'playerName' AND value = ?");
-            rechercheUtilisateur.setString(1, player.getUniqueId().toString());
-            rechercheUtilisateur.setString(2, player.getName());
-            ResultSet resultat = rechercheUtilisateur.executeQuery();
+        String savedPlayerName = Database.getUserSetting(player.getUniqueId().toString(), "playerName");
 
-            if (resultat.next()) {
-                returnValue = true;
-                // On a déjà renseigné le nom du joueur on va donc vérifier s'il a besoin d'être mis à jour
-                if (!resultat.getString("value").equals(player.getName())) {
-                    // On va mettre à jour le nom du joueur
-                    PreparedStatement updateUtilisateur = con.prepareStatement("UPDATE site_userSetting SET value = ? WHERE uuid = ? AND name = 'playerName'");
-                    updateUtilisateur.setString(1, player.getName());
-                    updateUtilisateur.setString(2, player.getUniqueId().toString());
-                    updateUtilisateur.executeUpdate();
-                }
-            } else {
-                // On peut insérer le nom du joueur
-                PreparedStatement insertUtilisateur = con.prepareStatement("INSERT INTO site_userSetting (uuid, name, value) VALUES (?, 'playerName', ?)");
-                insertUtilisateur.setString(1, player.getUniqueId().toString());
-                insertUtilisateur.setString(2, player.getName());
-                insertUtilisateur.executeQuery();
+        if (savedPlayerName != null) {
+            // On a déjà renseigné le nom du joueur on va donc vérifier s'il a besoin d'être mis à jour
+            if (!savedPlayerName.equals(player.getName())) {
+                Database.setUserSetting(player.getUniqueId().toString(), "playerName", player.getName());
             }
-        } catch (SQLException e) {
-            ConsoleLog.warning("Func savePlayerData::insertPlayerName(Player player)");
-            e.printStackTrace();
+            return true;
+        } else {
+            // On peut insérer le nom du joueur
+            Database.setUserSetting(player.getUniqueId().toString(), "playerName", player.getName());
+            return false;
         }
-        return returnValue;
     }
 
     private void statsPlayerEntryExit(Player player, boolean isEnter) {
@@ -121,51 +105,56 @@ public class PlayerDataHandler implements dataHandler {
     private void checkPlayerJoinedDate(Player player) {
         try {
             // On va vérifier si on l'a déjà renseigné par le passé
-            PreparedStatement rechercheUtilisateur = con.prepareStatement("SELECT * FROM site_userSetting WHERE uuid = ? AND name = 'joinedDate'");
-            rechercheUtilisateur.setString(1, player.getUniqueId().toString());
-            ResultSet resultat = rechercheUtilisateur.executeQuery();
+            String joinedDate = Database.getUserSetting(player.getUniqueId().toString(), "joinedDate");
 
-            if (!resultat.next()) {
+            if (joinedDate == null) {
                 // On n'a pas renseigné la date de création du joueur
                 if (player.hasPlayedBefore()) {
                     // On va piocher la date d'inscription chez CoreProtect (si elle existe)
                     // On la prend chez CoreProtect car le plugin a été installé dans les premières semaines du serveur. Il a donc bcp plus de données que nous concernant les anciens joueurs.
                     PreparedStatement rechercheDateInscription = con.prepareStatement("SELECT time FROM co_user WHERE uuid = ?");
                     rechercheDateInscription.setString(1, player.getUniqueId().toString());
-                    resultat = rechercheDateInscription.executeQuery();
+                    ResultSet resultat = rechercheDateInscription.executeQuery();
 
                     if (resultat.next()) {
                         // On insère la date d'inscription
-                        PreparedStatement insertionDateInscription = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'joinedDate',?)");
-                        insertionDateInscription.setString(1, player.getUniqueId().toString());
-                        insertionDateInscription.setString(2, java.sql.Timestamp.valueOf(LocalDateTime.ofEpochSecond(Long.parseLong(resultat.getString("time")), 0, ZoneOffset.UTC)).toString()); // Il faut convertir le timestamp (epoch second) en date
-                        insertionDateInscription.executeQuery();
+                        Database.setUserSetting(player.getUniqueId().toString(),
+                                "joinedDate",
+                                java.sql.Timestamp.valueOf(
+                                        LocalDateTime.ofEpochSecond(
+                                                Long.parseLong(resultat.getString("time")),
+                                                0,
+                                                ZoneOffset.UTC
+                                        )
+                                ).toString()
+                        );
 
                         // On va précisier que la date d'inscription a été trouvée chez CoreProtect
                         ConsoleLog.info("Le joueur " + ChatColor.GOLD + player.getName() + ChatColor.RESET + " n'avait pas de données sur sa date d'inscription dans dans la table des paramètres utilisateurs. On lui a donc attribué comme date de création du compte, celle que détenait CoreProtect.");
                     } else {
                         // On insère la date d'inscription (du coup on considère que Le joueur n'a pas joué avant, malgré la condition)
-                        PreparedStatement insertionDateInscription = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'joinedDate',?)");
-                        insertionDateInscription.setString(1, player.getUniqueId().toString());
-                        insertionDateInscription.setString(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()).toString());
-                        insertionDateInscription.executeQuery();
+                        Database.setUserSetting(
+                                player.getUniqueId().toString(),
+                                "joinedDate",
+                                java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()).toString()
+                        );
 
                         // On va préciser que la date d'inscription n'a pas été trouvée chez CoreProtect
-                        PreparedStatement insertionInaccurrateJoinedDate = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'inaccurrateJoinedDate',?)");
-                        insertionInaccurrateJoinedDate.setString(1, player.getUniqueId().toString());
-                        insertionInaccurrateJoinedDate.setString(2, "true");
-                        insertionInaccurrateJoinedDate.executeQuery();
+                        Database.setUserSetting(player.getUniqueId().toString(),
+                                "inaccurrateJoinedDate",
+                                "true"
+                        );
 
                         // On est daccord que ceci n'est pas censé arriver, cela ne concerne que mes potes n'étant venus que durant les premières semaines du serveur.
-
                         ConsoleLog.info("Le joueur " + ChatColor.GOLD + player.getName() + ChatColor.RESET + " n'avait pas de données sur sa date d'inscription dans dans la table des paramètres utilisateurs, ni dans la table des utilisateurs de CoreProtect. On lui a donc attribué comme date de création du compte, la date du début de sa partie.");
                     }
                 } else {
                     // Le joueur est nouveau, on insère la date d'inscription
-                    PreparedStatement insertionDateInscription = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'joinedDate',?)");
-                    insertionDateInscription.setString(1, player.getUniqueId().toString());
-                    insertionDateInscription.setString(2, Timestamp.valueOf(java.time.LocalDateTime.now()).toString());
-                    insertionDateInscription.executeQuery();
+                    Database.setUserSetting(
+                            player.getUniqueId().toString(),
+                            "joinedDate",
+                            java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()).toString()
+                    );
                 }
             }
         } catch (SQLException e) {
@@ -175,30 +164,7 @@ public class PlayerDataHandler implements dataHandler {
     }
 
     void setPlayerJoinCount(Player player) {
-        try {
-            // On va vérifier si on a déjà renseigné le nombre de fois que le joueur a rejoint le serveur par le passé
-            PreparedStatement rechercheJoinCount = con.prepareStatement("SELECT * FROM site_userSetting WHERE uuid = ? AND name = 'joins'");
-            rechercheJoinCount.setString(1, player.getUniqueId().toString());
-            ResultSet resultat = rechercheJoinCount.executeQuery();
-
-            if (resultat.next()) {
-                // On a déjà renseigné ça par le passé, on va donc faire un update
-                PreparedStatement updateJoinCount = con.prepareStatement("UPDATE site_userSetting SET value = ? WHERE uuid = ? AND name = 'joins'");
-                updateJoinCount.setString(1, String.valueOf(player.getStatistic(Statistic.LEAVE_GAME) + 1));
-                updateJoinCount.setString(2, player.getUniqueId().toString());
-                updateJoinCount.executeQuery();
-            } else {
-                // On n'a pas encore renseigné le nombre de fois que le joueur a rejoint le serveur, on va donc faire un insert
-                PreparedStatement insertionJoinCount = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'joins',?)");
-                insertionJoinCount.setString(1, player.getUniqueId().toString());
-                insertionJoinCount.setString(2, String.valueOf(player.getStatistic(Statistic.LEAVE_GAME) + 1));
-                insertionJoinCount.executeQuery();
-            }
-
-        } catch (SQLException e) {
-            ConsoleLog.warning("Func savePlayerData::setPlayerJoinCount(Player player)");
-            e.printStackTrace();
-        }
+        Database.setUserSetting(player.getUniqueId().toString(), "joins", String.valueOf(player.getStatistic(Statistic.LEAVE_GAME) + 1));
     }
 
     private List<Object> getPlayerWildCmdStats(Player player) {
@@ -206,83 +172,55 @@ public class PlayerDataHandler implements dataHandler {
         // - 0: Nombre d'utilisation du jour
         // - 1: Date de la dernière commande
 
-        try {
-            PreparedStatement playerLastUsed = con.prepareStatement("SELECT * FROM site_userSetting WHERE uuid = ? AND name = 'wildCmdLastUsed'");
-            playerLastUsed.setString(1, player.getUniqueId().toString());
-            ResultSet lastUsedResult = playerLastUsed.executeQuery();
+        String playerLastUsed = Database.getUserSetting(player.getUniqueId().toString(), "wildCmdLastUsed");
 
-            if (lastUsedResult.next()) {
-                LocalDateTime lastUsed = Timestamp.valueOf(lastUsedResult.getString("value")).toLocalDateTime();
-                if (ChronoUnit.HOURS.between(lastUsed, LocalDateTime.now()) > 24) {
+        if (playerLastUsed != null) {
+            LocalDateTime lastUsed = Timestamp.valueOf(playerLastUsed).toLocalDateTime();
+            if (ChronoUnit.HOURS.between(lastUsed, LocalDateTime.now()) > 24) {
+                return new ArrayList<>() {
+                    {
+                        add(0);
+                        add(lastUsed);
+                    }
+                };
+            } else {
+                String playerAskNum = Database.getUserSetting(player.getUniqueId().toString(), "wildCmdAskNum");
+
+                if (playerAskNum != null) {
                     return new ArrayList<>() {
                         {
-                            add(0);
+                            add(Integer.valueOf(playerAskNum));
                             add(lastUsed);
                         }
                     };
                 } else {
-                    PreparedStatement playerAskNum = con.prepareStatement("SELECT * FROM site_userSetting WHERE uuid = ? AND name = 'wildCmdAskNum'");
-                    playerAskNum.setString(1, player.getUniqueId().toString());
-                    ResultSet askNumResult = playerAskNum.executeQuery();
-
-                    if (askNumResult.next()) {
-                        return new ArrayList<>() {
-                            {
-                                add(Integer.valueOf(askNumResult.getString("value")));
-                                add(lastUsed);
-                            }
-                        };
-                    } else {
-                        ConsoleLog.warning("Func savePlayerData::getPlayerWildCmdStats(Player player)");
-                        ConsoleLog.warning("Fonctionnement anormal! On dispose de la date de 'wildCmdLastUsed' mais pas de 'wildCmdAskNum' pour le joueur " + player.getName() + " UUID: " + player.getUniqueId());
-                        ConsoleLog.warning("Passage de 'wildCmdAskNum' à 0.");
-                        return new ArrayList<>() {
-                            {
-                                add(0);
-                                add(lastUsed);
-                            }
-                        };
-                    }
+                    ConsoleLog.warning("Func savePlayerData::getPlayerWildCmdStats(Player player)");
+                    ConsoleLog.warning("Fonctionnement anormal! On dispose de la date de 'wildCmdLastUsed' mais pas de 'wildCmdAskNum' pour le joueur " + player.getName() + " UUID: " + player.getUniqueId());
+                    ConsoleLog.warning("Passage de 'wildCmdAskNum' à 0.");
+                    return new ArrayList<>() {
+                        {
+                            add(0);
+                            add(lastUsed);
+                        }
+                    };
                 }
-            } else {
-                plugin.getLogger().info("Mise à jour du joueur " + player.getName() + " UUID: " + player.getUniqueId());
-                ConsoleLog.info("Création des champs 'wildCmdLastUsed' et 'wildCmdAskNum'");
-
-                // On va insérer une date bidon pour éviter un potentiel cooldown
-                LocalDateTime dateBidon = LocalDateTime.parse("2001-12-11 12:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
-                PreparedStatement insertWildCmdLastUsed = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'wildCmdLastUsed',?)");
-                insertWildCmdLastUsed.setString(1, player.getUniqueId().toString());
-                insertWildCmdLastUsed.setString(2, Timestamp.valueOf(dateBidon).toString());
-                insertWildCmdLastUsed.executeQuery();
-
-                PreparedStatement insertWildCmdAskNum = con.prepareStatement("INSERT INTO site_userSetting (`uuid`, `name`, `value`) VALUES (?,'wildCmdAskNum',?)");
-                insertWildCmdAskNum.setString(1, player.getUniqueId().toString());
-                insertWildCmdAskNum.setString(2, "0");
-                insertWildCmdAskNum.executeQuery();
-
-                return new ArrayList<>() {
-                    {
-                        add(0);
-                        add(dateBidon);
-                    }
-                };
             }
-
-        } catch (SQLException e) {
-            ConsoleLog.warning("Func savePlayerData::getPlayerWildCmdStats(Player player)");
-            e.printStackTrace();
+        } else {
+            ConsoleLog.info("Mise à jour du joueur " + player.getName() + " UUID: " + player.getUniqueId());
+            ConsoleLog.info("Création des champs 'wildCmdLastUsed' et 'wildCmdAskNum'");
+
+            // On va insérer une date bidon pour éviter un potentiel cooldown
+            LocalDateTime dateBidon = LocalDateTime.parse("2001-12-11 12:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
+
+            Database.setUserSetting(player.getUniqueId().toString(), "wildCmdLastUsed", Timestamp.valueOf(dateBidon).toString());
+            Database.setUserSetting(player.getUniqueId().toString(), "wildCmdAskNum", "0");
+            return new ArrayList<>() {
+                {
+                    add(0);
+                    add(dateBidon);
+                }
+            };
         }
-
-        ConsoleLog.warning("Func savePlayerData::getPlayerWildCmdStats(Player player)");
-        ConsoleLog.warning("Fonctionnement anormal! La recherche dans la bdd a échouée pour le joueur " + player.getName() + " UUID: " + player.getUniqueId());
-        ConsoleLog.warning("Passage de 'wildCmdLastUsed' au 11 décembre 2001 et 'wildCmdAskNum' à 0");
-
-        return new ArrayList<>() {
-            {
-                add(0);
-                add(LocalDateTime.parse("2001-12-11 12:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
-            }
-        };
     }
 
     public void savePlayerWildCmdStats(Player player, List<Object> stats) {
@@ -290,22 +228,9 @@ public class PlayerDataHandler implements dataHandler {
         // - 0: Nombre d'utilisation du jour
         // - 1: Date de la dernière commande
 
-        try {
-            // On va zapper la vérification de présence car on suppose que la commande getWildCmdStats avait réussie
-            PreparedStatement updateWildCmdAskNum = con.prepareStatement("UPDATE site_userSetting SET value = ? WHERE uuid = ? AND name = 'wildCmdAskNum'");
-            updateWildCmdAskNum.setString(1, String.valueOf(stats.get(0)));
-            updateWildCmdAskNum.setString(2, player.getUniqueId().toString());
-            updateWildCmdAskNum.executeUpdate();
-
-            PreparedStatement updateWildCmdLastUsed = con.prepareStatement("UPDATE site_userSetting SET value = ? WHERE uuid = ? AND name = 'wildCmdLastUsed'");
-            updateWildCmdLastUsed.setString(1, Timestamp.valueOf((LocalDateTime) stats.get(1)).toString());
-            updateWildCmdLastUsed.setString(2, player.getUniqueId().toString());
-            updateWildCmdLastUsed.executeUpdate();
-
-        } catch (SQLException e) {
-            ConsoleLog.warning("Func savePlayerData::getPlayerWildCmdStats(Player player)");
-            e.printStackTrace();
-        }
+        // On va zapper la vérification de présence car on suppose que la commande getWildCmdStats avait réussie
+        Database.setUserSetting(player.getUniqueId().toString(), "wildCmdAskNum", String.valueOf(stats.get(0)));
+        Database.setUserSetting(player.getUniqueId().toString(), "wildCmdLastUsed", Timestamp.valueOf((LocalDateTime) stats.get(1)).toString());
     }
 
     public boolean playerAlreadyJoined(Player player) {