From fffc1522b0a3d42d2f136d2965e93150c6796462 Mon Sep 17 00:00:00 2001
From: SofianeLasri <alasri250@gmail.com>
Date: Mon, 24 Apr 2023 16:40:16 +0200
Subject: [PATCH] =?UTF-8?q?Modification=20de=20la=20m=C3=A9thode=20setUser?=
 =?UTF-8?q?Setting=20pour=20utiliser=20bjLoquent,=20et=20mise=20=C3=A0=20j?=
 =?UTF-8?q?our=20de=20ce=20dernier=20pour=20l'ajout=20du=20support=20des?=
 =?UTF-8?q?=20cl=C3=A9s=20primaires=20composites.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pom.xml                                       |  3 +-
 .../slcraftplugin/models/UserSetting.java     |  2 +-
 .../slcraftplugin/utils/Database.java         | 46 +++++++------------
 3 files changed, 19 insertions(+), 32 deletions(-)

diff --git a/pom.xml b/pom.xml
index 5e9f945..211d42c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,11 +98,10 @@
             <version>5.4</version>
             <scope>provided</scope>
         </dependency>
-        <!-- Version du 22 Avril 2023 -->
         <dependency>
             <groupId>com.github.SofianeLasri</groupId>
             <artifactId>bjLoquent</artifactId>
-            <version>6729e4b</version>
+            <version>db12baa</version>
         </dependency>
     </dependencies>
 </project>
diff --git a/src/main/java/com/slprojects/slcraftplugin/models/UserSetting.java b/src/main/java/com/slprojects/slcraftplugin/models/UserSetting.java
index 9693752..a86d7a0 100644
--- a/src/main/java/com/slprojects/slcraftplugin/models/UserSetting.java
+++ b/src/main/java/com/slprojects/slcraftplugin/models/UserSetting.java
@@ -9,7 +9,7 @@ public class UserSetting extends Model {
 
     public UserSetting() {
         super.tableName = "site_userSetting";
-        super.primaryKeyName = "uuid";
+        super.primaryKey = new String[]{"uuid", "name"};
     }
 
     public String getUuid() {
diff --git a/src/main/java/com/slprojects/slcraftplugin/utils/Database.java b/src/main/java/com/slprojects/slcraftplugin/utils/Database.java
index 3844aff..40f8323 100644
--- a/src/main/java/com/slprojects/slcraftplugin/utils/Database.java
+++ b/src/main/java/com/slprojects/slcraftplugin/utils/Database.java
@@ -2,6 +2,7 @@ package com.slprojects.slcraftplugin.utils;
 
 import com.slprojects.slcraftplugin.models.UserSetting;
 import com.slprojects.slcraftplugin.utils.database.Configuration;
+import net.luckperms.api.model.user.User;
 import org.bjloquent.Connector;
 import org.bjloquent.Model;
 
@@ -46,36 +47,23 @@ public class Database {
      * @param value Valeur de la clé
      */
     public static void setUserSetting(String uuid, String key, String value) {
-        Connection con;
-        try {
-            con = bddOpenConn();
-        } catch (SQLException e) {
-            ConsoleLog.danger("Impossible d'ouvrir la connexion à la bdd.");
-            throw new RuntimeException(e);
-        }
-        boolean isEntryExists = (getUserSetting(uuid, key) != null);
-
-        try {
-            if (isEntryExists) {
-                PreparedStatement updateEntry = con.prepareStatement("UPDATE " + userSettingsTabName + " SET value = ? WHERE uuid = ? AND name = ?");
-                updateEntry.setString(1, value);
-                updateEntry.setString(2, uuid);
-                updateEntry.setString(3, key);
-                updateEntry.executeUpdate();
-            } else {
-                insertUserSettingEntry(uuid, key, value);
-            }
-        } catch (SQLException e) {
-            ConsoleLog.danger("Erreur lors de l'exécution de la requête sql.");
-            throw new RuntimeException(e);
-        }
+        List<UserSetting> userSettingExists = Model.where(
+                UserSetting.class,
+                new String[]{"uuid", "name"},
+                new String[]{"=", "="},
+                new String[]{uuid, key}
+        );
 
-        // On ferme la bdd
-        try {
-            con.close();
-        } catch (SQLException e) {
-            ConsoleLog.danger("Impossible de fermer la connexion à la bdd.");
-            throw new RuntimeException(e);
+        if (userSettingExists.size() == 0) {
+            UserSetting userSetting = new UserSetting();
+            userSetting.setUuid(uuid);
+            userSetting.setName(key);
+            userSetting.setValue(value);
+            userSetting.create();
+        } else {
+            UserSetting userSetting = userSettingExists.get(0);
+            userSetting.setValue(value);
+            userSetting.save();
         }
     }
 
-- 
GitLab