From 7046dbc4d1e1995516ee41984acab04d850d9660 Mon Sep 17 00:00:00 2001 From: MrNavaStar Date: Wed, 5 Feb 2025 00:05:29 -0700 Subject: [PATCH] rework non minecraft api --- src/main/java/me/mrnavastar/sqlib/SQLib.java | 4 +-- .../sqlib/api/database/Database.java | 4 +-- .../mrnavastar/sqlib/impl/SQLConnection.java | 4 +-- .../config/{SQLibConfig.java => Config.java} | 25 ++++++------------- .../mrnavastar/sqlib/impl/config/Fabric.java | 2 +- .../sqlib/impl/config/NonMinecraft.java | 22 ++++++++++++++++ .../mrnavastar/sqlib/impl/config/Quilt.java | 2 +- .../sqlib/impl/config/Velocity.java | 2 +- 8 files changed, 38 insertions(+), 27 deletions(-) rename src/main/java/me/mrnavastar/sqlib/impl/config/{SQLibConfig.java => Config.java} (87%) create mode 100644 src/main/java/me/mrnavastar/sqlib/impl/config/NonMinecraft.java diff --git a/src/main/java/me/mrnavastar/sqlib/SQLib.java b/src/main/java/me/mrnavastar/sqlib/SQLib.java index 2e62b02..47f95be 100644 --- a/src/main/java/me/mrnavastar/sqlib/SQLib.java +++ b/src/main/java/me/mrnavastar/sqlib/SQLib.java @@ -1,7 +1,7 @@ package me.mrnavastar.sqlib; import me.mrnavastar.sqlib.api.database.Database; -import me.mrnavastar.sqlib.impl.config.SQLibConfig; +import me.mrnavastar.sqlib.impl.config.Config; import java.util.List; @@ -10,7 +10,7 @@ public class SQLib { protected static Database database; public static Database getDatabase() { - SQLibConfig.load(); + Config.load(); return database; } diff --git a/src/main/java/me/mrnavastar/sqlib/api/database/Database.java b/src/main/java/me/mrnavastar/sqlib/api/database/Database.java index cbab8d4..27f4182 100644 --- a/src/main/java/me/mrnavastar/sqlib/api/database/Database.java +++ b/src/main/java/me/mrnavastar/sqlib/api/database/Database.java @@ -5,7 +5,7 @@ import me.mrnavastar.sqlib.api.DataStore; import me.mrnavastar.sqlib.impl.SQLConnection; import me.mrnavastar.sqlib.impl.SQLPrimitive; -import me.mrnavastar.sqlib.impl.config.SQLibConfig; +import me.mrnavastar.sqlib.impl.config.Config; import java.util.*; @@ -18,7 +18,7 @@ public abstract class Database { static { Runtime.getRuntime().addShutdownHook(new Thread(() -> databases.forEach(Database::close))); - SQLibConfig.load(); + Config.load(); } public static List getDatabases() { diff --git a/src/main/java/me/mrnavastar/sqlib/impl/SQLConnection.java b/src/main/java/me/mrnavastar/sqlib/impl/SQLConnection.java index da4e6f8..aea87db 100644 --- a/src/main/java/me/mrnavastar/sqlib/impl/SQLConnection.java +++ b/src/main/java/me/mrnavastar/sqlib/impl/SQLConnection.java @@ -5,7 +5,7 @@ import lombok.Getter; import me.mrnavastar.sqlib.api.DataContainer; import me.mrnavastar.sqlib.api.DataStore; -import me.mrnavastar.sqlib.impl.config.SQLibConfig; +import me.mrnavastar.sqlib.impl.config.Config; import org.jdbi.v3.core.Handle; import org.jdbi.v3.core.Jdbi; @@ -24,7 +24,7 @@ public SQLConnection(String connectionUrl, Properties properties) { config.setUsername(properties.getProperty("user")); config.setPassword(properties.getProperty("password")); config.setMaximumPoolSize(50); - config.setConnectionTimeout(SQLibConfig.INSTANCE.database.timeout * 1000L); + config.setConnectionTimeout(Config.INSTANCE.database.timeout * 1000L); config.setMaxLifetime(1800000); // 30 min config.addDataSourceProperty("cachePrepStmts", "true"); config.addDataSourceProperty("useServerPrepStmts", "true"); diff --git a/src/main/java/me/mrnavastar/sqlib/impl/config/SQLibConfig.java b/src/main/java/me/mrnavastar/sqlib/impl/config/Config.java similarity index 87% rename from src/main/java/me/mrnavastar/sqlib/impl/config/SQLibConfig.java rename to src/main/java/me/mrnavastar/sqlib/impl/config/Config.java index 9ea7e55..770eaff 100644 --- a/src/main/java/me/mrnavastar/sqlib/impl/config/SQLibConfig.java +++ b/src/main/java/me/mrnavastar/sqlib/impl/config/Config.java @@ -1,7 +1,6 @@ package me.mrnavastar.sqlib.impl.config; import com.fasterxml.jackson.dataformat.toml.TomlMapper; -import lombok.Setter; import lombok.SneakyThrows; import me.mrnavastar.sqlib.SQLib; import me.mrnavastar.sqlib.api.database.MySQL; @@ -16,9 +15,9 @@ import java.nio.file.Path; import java.util.Objects; -public class SQLibConfig { +public class Config { - public static SQLibConfig INSTANCE; + public static Config INSTANCE; public Database database; public Local local; @@ -62,11 +61,6 @@ public boolean validate() { return database.type.equalsIgnoreCase("postgres") && server.validate(); } - @Setter - private static Path customConfigPath; - @Setter - private static Path customDefaultDirectory; - @SneakyThrows public static void load() { if (INSTANCE != null) return; @@ -74,12 +68,7 @@ public static void load() { Class.forName("org.sqlite.JDBC"); Class.forName("org.mariadb.jdbc.Driver"); Class.forName("org.postgresql.Driver"); - - if (customConfigPath != null && customDefaultDirectory != null) { - load(customDefaultDirectory, customConfigPath); - return; - } - + try { Class.forName("net.fabricmc.loader.api.FabricLoader"); Fabric.load(); @@ -95,9 +84,9 @@ public static void load() { try { Class.forName("com.velocitypowered.api.plugin.Plugin"); Velocity.load(); - } catch (ClassNotFoundException ignore) { - throw new RuntimeException("SQLib currently only supports Fabric, Quilt, and Velocity!"); - } + } catch (ClassNotFoundException ignore) {} + + if (!NonMinecraft.load()) throw new RuntimeException("SQLib currently only supports Fabric, Quilt, and Velocity!"); } public static me.mrnavastar.sqlib.api.database.Database load(Path localDir, Path configDir) { @@ -112,7 +101,7 @@ public static me.mrnavastar.sqlib.api.database.Database load(Path localDir, Path writer.write(data); } } - INSTANCE = new TomlMapper().readValue(configFile, SQLibConfig.class); + INSTANCE = new TomlMapper().readValue(configFile, Config.class); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/me/mrnavastar/sqlib/impl/config/Fabric.java b/src/main/java/me/mrnavastar/sqlib/impl/config/Fabric.java index f27a7b5..5a7fea8 100644 --- a/src/main/java/me/mrnavastar/sqlib/impl/config/Fabric.java +++ b/src/main/java/me/mrnavastar/sqlib/impl/config/Fabric.java @@ -8,6 +8,6 @@ public class Fabric extends SQLib { public static void load() { - if (database == null) database = SQLibConfig.load(Path.of(FabricLoader.getInstance().getGameDir() + "/sqlib"), FabricLoader.getInstance().getConfigDir()); + if (database == null) database = Config.load(Path.of(FabricLoader.getInstance().getGameDir() + "/sqlib"), FabricLoader.getInstance().getConfigDir()); } } \ No newline at end of file diff --git a/src/main/java/me/mrnavastar/sqlib/impl/config/NonMinecraft.java b/src/main/java/me/mrnavastar/sqlib/impl/config/NonMinecraft.java new file mode 100644 index 0000000..92690eb --- /dev/null +++ b/src/main/java/me/mrnavastar/sqlib/impl/config/NonMinecraft.java @@ -0,0 +1,22 @@ +package me.mrnavastar.sqlib.impl.config; + +import me.mrnavastar.sqlib.SQLib; + +import java.nio.file.Path; + +public class NonMinecraft extends SQLib { + + private static Path databaseDir; + private static Path config; + + public static void init(Path defaultDatabaseDir, Path configDir) { + databaseDir = defaultDatabaseDir; + config = configDir; + } + + public static boolean load() { + if (databaseDir == null || config == null) return false; + if (database == null) database = Config.load(databaseDir, config); + return true; + } +} diff --git a/src/main/java/me/mrnavastar/sqlib/impl/config/Quilt.java b/src/main/java/me/mrnavastar/sqlib/impl/config/Quilt.java index 4cb677d..5850926 100644 --- a/src/main/java/me/mrnavastar/sqlib/impl/config/Quilt.java +++ b/src/main/java/me/mrnavastar/sqlib/impl/config/Quilt.java @@ -8,6 +8,6 @@ public class Quilt extends SQLib { public static void load() { - if (database == null) database = SQLibConfig.load(Path.of(QuiltLoader.getGameDir() + "/sqlib"), QuiltLoader.getConfigDir()); + if (database == null) database = Config.load(Path.of(QuiltLoader.getGameDir() + "/sqlib"), QuiltLoader.getConfigDir()); } } diff --git a/src/main/java/me/mrnavastar/sqlib/impl/config/Velocity.java b/src/main/java/me/mrnavastar/sqlib/impl/config/Velocity.java index 8c222b0..945926f 100644 --- a/src/main/java/me/mrnavastar/sqlib/impl/config/Velocity.java +++ b/src/main/java/me/mrnavastar/sqlib/impl/config/Velocity.java @@ -9,6 +9,6 @@ public class Velocity extends SQLib { public static void load() { if (database != null) return; Path dir = Path.of("plugins/sqlib"); - database = SQLibConfig.load(dir,dir); + database = Config.load(dir,dir); } }