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