From da30bb8ed13bab26b5450af57ad7b903575caf02 Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Tue, 25 Apr 2023 09:45:17 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9placement=20de=20la=20fonciton=20initDat?= =?UTF-8?q?abase=20dans=20la=20classe=20correspondante,=20et=20am=C3=A9lio?= =?UTF-8?q?ration=20de=20la=20fonction=20de=20d=C3=A9marrage=20du=20plugin?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/slprojects/slcraftplugin/Main.java | 55 +++++++---------- .../slcraftplugin/utils/Database.java | 59 ++++++++----------- 2 files changed, 44 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/slprojects/slcraftplugin/Main.java b/src/main/java/com/slprojects/slcraftplugin/Main.java index 10b7d73..d4360d3 100644 --- a/src/main/java/com/slprojects/slcraftplugin/Main.java +++ b/src/main/java/com/slprojects/slcraftplugin/Main.java @@ -15,6 +15,7 @@ import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.Sound; +import org.bukkit.command.PluginCommand; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -59,10 +60,10 @@ public final class Main extends JavaPlugin implements Listener { @Override public void onEnable() { pluginName = this.getName(); + // On s'assure qu'on a placeholder api if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { ConsoleLog.info("PlaceholderAPI chargé"); - // On initialise les listeners getServer().getPluginManager().registerEvents(this, this); } else { ConsoleLog.danger("PlaceholderAPI n'est pas accessible!"); @@ -88,29 +89,40 @@ public final class Main extends JavaPlugin implements Listener { // Plugin startup logic try { databaseConnection = Database.bddOpenConn(); + Database.initDatabase(); } catch (SQLException e) { throw new RuntimeException(e); } + + // On charge la config (et on la crée si elle n'existe pas) saveDefaultConfig(); reloadConfig(); config = getConfig(); updateConfig(); - initDatabase(); - + // On initialise les handlers playerDataHandler = new PlayerDataHandler(this); - InternalWebServer.startServer(this); periodicEvent = new PeriodicEvent(this); + InternalWebServer.startServer(this); // On initialise les commandes wildCommand = new Wild(this); - getCommand("wild").setExecutor(wildCommand); - WildReset wildReset = new WildReset(this); - getCommand("reset-wild").setExecutor(wildReset); - LinkCode linkCodeCommand = new LinkCode(this); - getCommand("getLinkCode").setExecutor(linkCodeCommand); + + PluginCommand wild = getCommand("wild"); + PluginCommand resetWild = getCommand("reset-wild"); + PluginCommand getLinkCode = getCommand("getLinkCode"); + + // On vérifie que les commandes ont bien été initialisées dans plugin.yml + if (wild == null || resetWild == null || getLinkCode == null) { + ConsoleLog.danger("Une commande n'a pas pu être initialisée!"); + getServer().getPluginManager().disablePlugin(this); + } else { + wild.setExecutor(wildCommand); + resetWild.setExecutor(wildReset); + getLinkCode.setExecutor(linkCodeCommand); + } ConsoleLog.success("Plugin démarré"); } @@ -341,29 +353,4 @@ public final class Main extends JavaPlugin implements Listener { saveConfig(); reloadConfig(); } - - private void initDatabase() { - try { - Connection con = bddOpenConn(); - PreparedStatement ps = con.prepareStatement("CREATE TABLE IF NOT EXISTS `site_userSetting` (\n" + - " `uuid` varchar(36) NOT NULL DEFAULT '',\n" + - " `name` varchar(128) NOT NULL,\n" + - " `value` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + - " PRIMARY KEY (`uuid`,`name`) USING BTREE\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); - ps.executeQuery(); - ps = con.prepareStatement("CREATE TABLE IF NOT EXISTS `site_linkCode` (\n" + - " `uuid` VARCHAR(36) NOT NULL,\n" + - " `code` VARCHAR(8) NOT NULL,\n" + - " `time` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n" + - " `used` BOOLEAN,\n" + - " PRIMARY KEY (`uuid`),\n" + - " UNIQUE INDEX `code` (`code`)\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); - ps.executeQuery(); - con.close(); - } catch (Exception e) { - ConsoleLog.danger("Erreur lors de l'exécution de initDatabase(): " + e); - } - } } diff --git a/src/main/java/com/slprojects/slcraftplugin/utils/Database.java b/src/main/java/com/slprojects/slcraftplugin/utils/Database.java index 40f8323..8d50bd1 100644 --- a/src/main/java/com/slprojects/slcraftplugin/utils/Database.java +++ b/src/main/java/com/slprojects/slcraftplugin/utils/Database.java @@ -67,42 +67,6 @@ public class Database { } } - /** - * Ajoute une entrée dans la table site_userSetting - * - * @param uuid UUID du joueur - * @param key Nom de la clé - * @param value Valeur de la clé - */ - private static void insertUserSettingEntry(String uuid, String key, String value) { - Connection con; - try { - con = bddOpenConn(); - } catch (SQLException e) { - ConsoleLog.danger("Erreur lors de l'ouverture de la connexion à la bdd."); - throw new RuntimeException(e); - } - - try { - PreparedStatement insertEntry = con.prepareStatement("INSERT INTO " + userSettingsTabName + " (uuid, name, value) VALUES (?, ?, ?)"); - insertEntry.setString(1, uuid); - insertEntry.setString(2, key); - insertEntry.setString(3, value); - insertEntry.executeQuery(); - } catch (SQLException e) { - ConsoleLog.danger("Erreur lors de l'exécution de la requête sql."); - throw new RuntimeException(e); - } - - // On ferme la bdd - try { - con.close(); - } catch (SQLException e) { - ConsoleLog.danger("Impossible de fermer la connexion à la bdd."); - throw new RuntimeException(e); - } - } - /** * Ouvre une connexion à la base de données * @@ -122,4 +86,27 @@ public class Database { connection.close(); jLoquentConnector.close(); } + + public static void initDatabase() { + try { + PreparedStatement ps = connection.prepareStatement("CREATE TABLE IF NOT EXISTS `site_userSetting` (\n" + + " `uuid` varchar(36) NOT NULL DEFAULT '',\n" + + " `name` varchar(128) NOT NULL,\n" + + " `value` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + " PRIMARY KEY (`uuid`,`name`) USING BTREE\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); + ps.executeQuery(); + ps = connection.prepareStatement("CREATE TABLE IF NOT EXISTS `site_linkCode` (\n" + + " `uuid` VARCHAR(36) NOT NULL,\n" + + " `code` VARCHAR(8) NOT NULL,\n" + + " `time` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n" + + " `used` BOOLEAN,\n" + + " PRIMARY KEY (`uuid`),\n" + + " UNIQUE INDEX `code` (`code`)\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); + ps.executeQuery(); + } catch (Exception e) { + ConsoleLog.danger("Erreur lors de l'exécution de initDatabase(): " + e); + } + } } -- GitLab