diff --git a/pom.xml b/pom.xml index 5e9f94563de7204256951ee8b80d17f3dc0b28a6..211d42c729f896c993ca6f1d4a93b7b7150c7ffc 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 9693752dedaeaa2bc53d3e04c4f90fbb4cd45845..a86d7a0909be8475618d1bbe9f81abdec96a2237 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 3844aff2d3cdff03a8940a2623b9383fc21b606b..40f8323bf0288ed590ac5720cbdb8da7d74aaf3c 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(); } }