From f09061f6b64494163deb7a22b7f00c6ff6939105 Mon Sep 17 00:00:00 2001 From: stjn Date: Wed, 3 Nov 2021 14:35:53 +0100 Subject: [PATCH] Added basic database (untested) --- src/main/java/com/alttd/VillagerUI.java | 2 + .../com/alttd/commands/database/Database.java | 49 +++++++++++++++++++ src/main/java/com/alttd/config/Config.java | 17 ++++++- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/alttd/commands/database/Database.java diff --git a/src/main/java/com/alttd/VillagerUI.java b/src/main/java/com/alttd/VillagerUI.java index fb147df..3c65419 100644 --- a/src/main/java/com/alttd/VillagerUI.java +++ b/src/main/java/com/alttd/VillagerUI.java @@ -2,6 +2,7 @@ package com.alttd; import com.alttd.GUI.GUIListener; import com.alttd.commands.CommandManager; +import com.alttd.commands.database.Database; import com.alttd.config.Config; import com.alttd.config.VillagerConfig; import com.alttd.config.WorthConfig; @@ -28,6 +29,7 @@ public class VillagerUI extends JavaPlugin { Config.reload(); VillagerConfig.reload(); WorthConfig.reload(); + Database.init(); getLogger().info("--------------------------------------------------"); getLogger().info("Villager UI started"); getLogger().info("--------------------------------------------------"); diff --git a/src/main/java/com/alttd/commands/database/Database.java b/src/main/java/com/alttd/commands/database/Database.java new file mode 100644 index 0000000..d6378d4 --- /dev/null +++ b/src/main/java/com/alttd/commands/database/Database.java @@ -0,0 +1,49 @@ +package com.alttd.commands.database; + +import com.alttd.VillagerUI; +import com.alttd.config.Config; +import org.bukkit.Bukkit; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class Database { + + public static Connection connection = null; + + public static void init() { //Not static so we know for sure it loads on time + String url = "jdbc:" + Config.DRIVER + + "://" + Config.IP + + ":" + Config.PORT + + "/" + Config.DATABASE_NAME + + "?autoReconnect=true&useSSL=false"; + try { + connection = DriverManager.getConnection(url, Config.USERNAME, Config.PASSWORD); + } catch (SQLException e) { + e.printStackTrace(); + VillagerUI.getInstance().getLogger().severe("Connection to database failed!"); + connection = null; + VillagerUI.getInstance().getLogger().severe("Shutting down VillagerUI"); + Bukkit.getPluginManager().disablePlugin(VillagerUI.getInstance()); + return; + } + + // Tables + createUserPointsTable(); + } + + static void createUserPointsTable() { + try { + String sql = "CREATE TABLE IF NOT EXISTS user_points(" + + "UUID varchar 36 NOT NULL, " + + "Points int NOT NULL, " + + "PRIMARY KEY (UUID)" + + ")"; + connection.prepareStatement(sql).executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + +} diff --git a/src/main/java/com/alttd/config/Config.java b/src/main/java/com/alttd/config/Config.java index 4376a59..6658270 100644 --- a/src/main/java/com/alttd/config/Config.java +++ b/src/main/java/com/alttd/config/Config.java @@ -14,7 +14,6 @@ public final class Config extends AbstractConfig { static Config config; static int version; - public Config() { super(new File(System.getProperty("user.home") + File.separator + "share" + File.separator + "configs" + File.separator + "VillagerShopUI"), "config.yml"); } @@ -28,6 +27,22 @@ public final class Config extends AbstractConfig { config.readConfig(Config.class, null); } + public static String DRIVER = "mysql"; + public static String IP = "localhost"; + public static String PORT = "3306"; + public static String DATABASE_NAME = "VillagerShopUI"; + public static String USERNAME = ""; + public static String PASSWORD = ""; + + private static void loadDatabase() { + DRIVER = config.getString("database.driver", DRIVER); + IP = config.getString("database.ip", IP); + PORT = config.getString("database.port", PORT); + DATABASE_NAME = config.getString("database.name", DATABASE_NAME); + USERNAME = config.getString("database.username", USERNAME); + PASSWORD = config.getString("database.password", PASSWORD); + } + public static String INITIAL_VILLAGER_WINDOW = " price: %"; public static String BUY_WINDOW = " price: %"; public static String SELL_WINDOW = " price: %";