diff --git a/pom.xml b/pom.xml index 9ff3f1e..e154a89 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.NVus NVus_Prison - 0.9.0 + 0.9.1 jar NVus_PrisonSetup diff --git a/src/main/java/me/nvus/nvus_prison_setup/Database/DatabaseManager.java b/src/main/java/me/nvus/nvus_prison_setup/Database/DatabaseManager.java index 28c333f..45ac032 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Database/DatabaseManager.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Database/DatabaseManager.java @@ -7,15 +7,23 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.UUID; +import java.io.File; public class DatabaseManager { - private String url = "jdbc:sqlite:/plugins/NVus_Prison/nvus_prison.db"; + private String url; + public DatabaseManager(File dataFolder) { + // Construct the file path for the SQLite database + File databaseFile = new File(dataFolder, "nvus_prison.db"); + this.url = "jdbc:sqlite:" + databaseFile.getAbsolutePath(); + initializeDatabase(); + } public DatabaseManager() { initializeDatabase(); } + private Connection connect() { Connection conn = null; try { @@ -53,6 +61,11 @@ public class DatabaseManager { } } + // Public Accessor to initialize the database + public void initDatabase() { + initializeDatabase(); + } + public void createGang(String name, String ownerUuid) { String sql = "INSERT INTO gangs(name, owner_uuid) VALUES(?,?)"; diff --git a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java index e6739b0..63f77d5 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java +++ b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java @@ -20,11 +20,17 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; public final class PrisonSetup extends JavaPlugin { private ConfigManager configManager; - private DatabaseManager dbManager; // Adjusted for clarity + private DatabaseManager dbManager; private GangManager gangManager; // Added reference to GangManager // Initialize the DatabaseManager @@ -33,13 +39,27 @@ public final class PrisonSetup extends JavaPlugin { // Initialize the ConfigManager configManager = new ConfigManager(this); - // Gangs & Database - dbManager = new DatabaseManager(); // Initialize the DatabaseManager - gangManager = new GangManager(dbManager); // Initialize GangManager with DatabaseManager + // Get the plugin's data folder + File dataFolder = getDataFolder(); + + // Initialize the DatabaseManager with the plugin's data folder + dbManager = new DatabaseManager(dataFolder); + + // Initialize the GangManager with the DatabaseManager + gangManager = new GangManager(dbManager); + + // Check if SQLite DB Exists, if not init it + File databaseFile = new File(dataFolder, "nvus_prison.db"); + if (!databaseFile.exists()) { + // If the database file doesn't exist, initialize the database + dbManager.initDatabase(); + getLogger().info("SQLite database initialized successfully."); + } else { + getLogger().info("SQLite database already exists."); + } - - // Save the default configs, if they doesn't exist + // Save the default configs, if they don't exist configManager.saveDefaultConfig("config.yml"); configManager.saveDefaultConfig("banned_items.yml"); configManager.saveDefaultConfig("auto_switch.yml"); @@ -52,10 +72,8 @@ public final class PrisonSetup extends JavaPlugin { getServer().getPluginManager().registerEvents(new ToolSwitchListener(configManager), this); this.getCommand("nvus").setExecutor(new CommandListener(this, configManager)); - // Gang Related - // Register the Gang Commands - this.getCommand("gang create").setExecutor(new GangCommands(dbManager)); - this.getCommand("gang invite").setExecutor(new GangCommands(dbManager)); + // Gang Related...... GANG, GANG #LOLOLOLOL + this.getCommand("gang").setExecutor(new GangCommands(dbManager)); // Settings Menu getServer().getPluginManager().registerEvents(new SettingsMenu(this, configManager), this); @@ -102,7 +120,6 @@ public final class PrisonSetup extends JavaPlugin { return configManager; } - // Optionally, if other parts of your plugin need to access the DatabaseManager or GangManager public DatabaseManager getDatabaseManager() { return dbManager; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 6c26721..620dd7f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -15,9 +15,25 @@ commands: usage: | /nvus reload - Reloads all configuration files. /nvus version - Shows the plugin version. - /nvus menu - Opens the settings menu (player only). + /nvus menu - Opens the settings menu. /nvus autopickup - Toggles the auto item pickup feature. /nvus autoswitch - Toggles the auto tool switch feature. /nvus prisonerarmor - Toggles giving prisoners armor on join. /nvus restrictarmor - Toggles the restriction on changing prisoner armor. + /nvus tooldamage - Toggle if prisoner tools receive damage. FALSE = No Damage. aliases: [nvusmenu] + + gang: + description: Base command for gang-related actions. + usage: | + /gang create - Create a gang + /gang invite - Invite a player to your gang. + /gang accept - Accept a Gang Invite. + /gang deny - Decline a Gang Invite. + /gang leave - Leave your current Gang. + -----COMING SOON----- + /gang disband - Disband your gang. + /gang kick - Kick a player from your gang. + /gang promote - Promote a player to a higher rank. + /gang demote - Demote a player to a lower rank. + aliases: [gangs] \ No newline at end of file