diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/App.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/App.java index eb159e3..e02c6ae 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/App.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/App.java @@ -5,7 +5,7 @@ import org.bukkit.command.PluginCommand; import org.bukkit.plugin.java.JavaPlugin; import nl.interestingcorner.coordinates.commands.CoordinatesCommand; -import nl.interestingcorner.coordinates.db.DatabaseManager; +import nl.interestingcorner.coordinates.db.CoordinatesDatabaseManager; import nl.interestingcorner.coordinates.gui.CoordinatesGUIListener; public class App extends JavaPlugin { @@ -13,12 +13,7 @@ public class App extends JavaPlugin { @Override public void onEnable() { getLogger().info("Eyooo we boutta get lit!"); - - if (!DatabaseManager.INSTANCE.initialize(this)) { - getLogger().severe("Could not initialize database. Exiting!"); - setEnabled(false); - return; - } + CoordinatesDatabaseManager.INSTANCE.initialize(this); getLogger().info("Successfully initialized database"); getServer().getPluginManager().registerEvents(new CoordinatesGUIListener(), this); @@ -29,10 +24,6 @@ public class App extends JavaPlugin { @Override public void onDisable() { getLogger().info("Eyooo we outta here!"); - - if (!DatabaseManager.INSTANCE.close()) { - getLogger().severe("Error while trying to close db connection"); - } } private void registerCommands() { diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java index 7590177..7c3ac37 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java @@ -1,22 +1,17 @@ package nl.interestingcorner.coordinates.commands; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import net.md_5.bungee.api.ChatColor; -import net.md_5.bungee.api.chat.ComponentStyle; import net.md_5.bungee.api.chat.TextComponent; -import net.md_5.bungee.api.chat.TranslatableComponent; import nl.interestingcorner.coordinates.db.Coordinate; -import nl.interestingcorner.coordinates.db.DatabaseManager; +import nl.interestingcorner.coordinates.db.CoordinatesDatabaseManager; import nl.interestingcorner.coordinates.db.MinecraftColor; public class AddCoordinateCommandHandler implements CoordinatesCommandHandler { @@ -72,7 +67,7 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler { } //TODO check if item doesnt already exist, coordinate with same values, create isEquals method for coordinate - return DatabaseManager.INSTANCE + return CoordinatesDatabaseManager.INSTANCE .addCoordinate(name, // name description, // description new Coordinate.Position(playerLocation.getBlockX(), playerLocation.getBlockY(), diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java index 607cab2..02033ce 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java @@ -5,8 +5,8 @@ import java.util.List; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import nl.interestingcorner.coordinates.db.CoordinatesDatabaseManager; import nl.interestingcorner.coordinates.db.Coordinate; -import nl.interestingcorner.coordinates.db.DatabaseManager; import nl.interestingcorner.coordinates.gui.CoordinatesGUI; public class GetCoordinatesCommandHandler implements CoordinatesCommandHandler { @@ -16,10 +16,10 @@ public class GetCoordinatesCommandHandler implements CoordinatesCommandHandler { if (sender instanceof Player player) { List coords; if (args.length < 2) { - coords = DatabaseManager.INSTANCE.getAllCoordinates(); + coords = CoordinatesDatabaseManager.INSTANCE.getAllCoordinates(); } else if (args[1].equalsIgnoreCase("world")) { String world = player.getWorld().getName(); - coords = DatabaseManager.INSTANCE.getAllCoordinates(world); + coords = CoordinatesDatabaseManager.INSTANCE.getAllCoordinates(world); } else { sender.sendMessage("Invalid argument: " + args[1]); return false; diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/CoordinatesDatabaseManager.java similarity index 73% rename from ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java rename to ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/CoordinatesDatabaseManager.java index 6da72e8..79d33d4 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/db/CoordinatesDatabaseManager.java @@ -1,8 +1,6 @@ package nl.interestingcorner.coordinates.db; -import java.io.File; import java.sql.Connection; -import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -12,49 +10,15 @@ import java.util.logging.Level; import org.bukkit.plugin.java.JavaPlugin; -public enum DatabaseManager { +public enum CoordinatesDatabaseManager implements nl.interestingcorner.core.db.DatabaseInitializeListener{ INSTANCE; private Connection connection; private JavaPlugin app; - /** - * Initializes the database. Creates the file and sets up the db structure. - * - * @param app the app to use for logging - * @return true if the database was initialized successfully. False if not. - */ - public boolean initialize(JavaPlugin app) { + public void initialize(JavaPlugin app) { this.app = app; - - if (!setupDatabase()) { - return false; - } - - if (!initializeTables()) { - return false; - } - - return true; - } - - /** - * Closes the connectino to the database - * - * @return true if the connection closed succesfully, false if not. - */ - public boolean close() { - try { - if (this.connection != null && !this.connection.isClosed()) { - this.connection.close(); - } - } catch (SQLException ex) { - this.app.getLogger().log(Level.SEVERE, "Error while closing the databse connection: {0}", ex.getMessage()); - return false; - } - - return true; } /** @@ -154,35 +118,6 @@ public enum DatabaseManager { return true; } - /** - * Sets up the connectino to the database. Creates a new .db file if it - * doesn't exist yet. - * - * @return true if the connection was set up successfully. False if not. - */ - private boolean setupDatabase() { - if (!this.app.getDataFolder().exists()) { - if (!this.app.getDataFolder().mkdirs()) { - app.getLogger().severe("Could not create data folder"); - return false; - } - } - - File dbFile = new File(app.getDataFolder(), "database.db"); - String url = "jdbc:sqlite:" + dbFile.getAbsolutePath(); - - try { - this.connection = DriverManager.getConnection(url); - } catch (SQLException e) { - this.app.getLogger().log(Level.SEVERE, "Could not connect to database file {0}: {1}", - new Object[] { dbFile, e.getMessage() }); - } - - this.app.getLogger().log(Level.INFO, "Connected to SQLite database: {0}", dbFile.getName()); - - return true; - } - /** * initializes the tables for the database. * @@ -208,4 +143,12 @@ public enum DatabaseManager { return true; } + @Override + public void initializeDatabaseTables(Connection connection) { + this.connection = connection; + if (!initializeTables()) { + this.app.getLogger().severe("Could not initialize coordinates database tables"); + } + } + }