From 02cfe9623ac5527b56714ddf6cc768ccd123c60d Mon Sep 17 00:00:00 2001 From: Ryan Fox Date: Wed, 21 Oct 2020 22:49:37 +0000 Subject: [PATCH] Initial SQLite database support --- .../party/_2a03/mc/MinecraftTweaks2a03.java | 7 ++++ .../java/party/_2a03/mc/util/Database.java | 36 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/main/java/party/_2a03/mc/util/Database.java diff --git a/src/main/java/party/_2a03/mc/MinecraftTweaks2a03.java b/src/main/java/party/_2a03/mc/MinecraftTweaks2a03.java index e35a681..d6666a0 100644 --- a/src/main/java/party/_2a03/mc/MinecraftTweaks2a03.java +++ b/src/main/java/party/_2a03/mc/MinecraftTweaks2a03.java @@ -1,6 +1,7 @@ package party._2a03.mc; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.registry.CommandRegistry; import net.fabricmc.loader.api.FabricLoader; import java.io.File; @@ -15,6 +16,7 @@ import party._2a03.mc.command.HeadCommand; import party._2a03.mc.command.HomeCommand; import party._2a03.mc.command.SpawnCommand; import party._2a03.mc.util.Config; +import party._2a03.mc.util.Database; public class MinecraftTweaks2a03 implements ModInitializer { private static final Logger LOGGER = LogManager.getLogger(); @@ -34,13 +36,18 @@ public class MinecraftTweaks2a03 implements ModInitializer { } } Config.initConfig(configDir.toFile()); + Database.init(configDir.toFile()); try { Config.loadConfig(); + Database.open(); } catch (Exception e) { e.printStackTrace(); LOGGER.error(e); return; } + ServerLifecycleEvents.SERVER_STOPPING.register(minecraftServer -> { + Database.close(); + }); LOGGER.info("Registering 2a03.party commands"); CommandRegistry.INSTANCE.register(false, dispatcher -> { ConfigCommand.register(dispatcher); diff --git a/src/main/java/party/_2a03/mc/util/Database.java b/src/main/java/party/_2a03/mc/util/Database.java new file mode 100644 index 0000000..33f17cc --- /dev/null +++ b/src/main/java/party/_2a03/mc/util/Database.java @@ -0,0 +1,36 @@ +package party._2a03.mc.util; + +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class Database { + private static final Logger LOGGER = LogManager.getLogger(); + private static Connection conn = null; + private static File file; + + public static void init(File configDir) { + file = new File(configDir, "2a03.db"); + } + + public static void open() throws Exception { + LOGGER.info("Loading 2a03.party database"); + String url = "jdbc:sqlite:"; + url = url.concat(file.getPath()); + conn = DriverManager.getConnection(url); + LOGGER.info("Database loaded"); + } + + public static void close() { + LOGGER.info("Unloading 2a03.party database"); + try { + if (conn != null) + conn.close(); + } catch (SQLException e) { + LOGGER.error(e.getMessage(), e); + } + } +}