v0.9.0 - Fixed ToolDamage not having an option in the settings menu and corrected gold edition name in the pom.xml. Began adding Prison Gangs to the plugin, which includes handling a SQLite Database etc... what an undertaking LOL.
This commit is contained in:
parent
768f33c664
commit
70f56cde66
|
@ -8,7 +8,7 @@
|
|||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
10
pom.xml
10
pom.xml
|
@ -5,8 +5,8 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>me.NVus</groupId>
|
||||
<artifactId>NVus_Prison_Setup</artifactId>
|
||||
<version>0.8.1</version>
|
||||
<artifactId>NVus_Prison</artifactId>
|
||||
<version>0.9.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>NVus_PrisonSetup</name>
|
||||
|
@ -107,6 +107,12 @@
|
|||
<scope>import</scope>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
<!-- SQLite JDBC Driver -->
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.36.0.3</version> <!-- Use the latest version -->
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
|
|
@ -31,14 +31,15 @@ public class SettingsMenu implements Listener {
|
|||
}
|
||||
|
||||
public void openSettingsMenu(Player player) {
|
||||
Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "Settings Menu");
|
||||
Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "NVus Prison Settings");
|
||||
FileConfiguration config = configManager.getConfig("config.yml");
|
||||
|
||||
// Adjust the items to be spaced out and include ToolDamage toggle
|
||||
inv.setItem(0, createToggleItem(Material.LEATHER_CHESTPLATE, "Toggle PrisonerArmor", config.getBoolean("PrisonerArmor", false)));
|
||||
inv.setItem(1, createToggleItem(Material.IRON_DOOR, "Toggle RestrictArmor", config.getBoolean("RestrictArmor", false)));
|
||||
inv.setItem(3, createToggleItem(Material.HOPPER, "Toggle AutoPickup", config.getBoolean("AutoPickup", false)));
|
||||
inv.setItem(4, createToggleItem(Material.LEVER, "Toggle AutoSwitch", config.getBoolean("AutoSwitch", false)));
|
||||
inv.setItem(7, createItem(Material.BOOK, ChatColor.GREEN + "Reload Configs"));
|
||||
inv.setItem(2, createToggleItem(Material.IRON_DOOR, "Toggle RestrictArmor", config.getBoolean("RestrictArmor", false)));
|
||||
inv.setItem(4, createToggleItem(Material.HOPPER, "Toggle AutoPickup", config.getBoolean("AutoPickup", false)));
|
||||
inv.setItem(6, createToggleItem(Material.LEVER, "Toggle AutoSwitch", config.getBoolean("AutoSwitch", false)));
|
||||
inv.setItem(8, createToggleItem(Material.IRON_PICKAXE, "Toggle ToolDamage", config.getBoolean("ToolDamage", true)));
|
||||
|
||||
player.openInventory(inv);
|
||||
}
|
||||
|
@ -51,17 +52,18 @@ public class SettingsMenu implements Listener {
|
|||
return item;
|
||||
}
|
||||
|
||||
private ItemStack createItem(Material material, String name) {
|
||||
ItemStack item = new ItemStack(material);
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.setDisplayName(name);
|
||||
item.setItemMeta(meta);
|
||||
return item;
|
||||
}
|
||||
// private ItemStack createItem(Material material, String name) {
|
||||
// ItemStack item = new ItemStack(material);
|
||||
// ItemMeta meta = item.getItemMeta();
|
||||
// meta.setDisplayName(name);
|
||||
// item.setItemMeta(meta);
|
||||
// return item;
|
||||
// }
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "Settings Menu")) return;
|
||||
if (!event.getView().getTitle().equals(ChatColor.DARK_GREEN + "NVus Prison Settings")) return;
|
||||
event.setCancelled(true);
|
||||
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
|
|
|
@ -0,0 +1,210 @@
|
|||
package me.nvus.nvus_prison_setup.Database;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DatabaseManager {
|
||||
|
||||
private String url = "jdbc:sqlite:/plugins/NVus_Prison/nvus_prison.db";
|
||||
|
||||
public DatabaseManager() {
|
||||
initializeDatabase();
|
||||
}
|
||||
|
||||
private Connection connect() {
|
||||
Connection conn = null;
|
||||
try {
|
||||
conn = DriverManager.getConnection(url);
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
return conn;
|
||||
}
|
||||
|
||||
private void initializeDatabase() {
|
||||
// SQL statement for creating gangs table
|
||||
String sqlGangs = "CREATE TABLE IF NOT EXISTS gangs ("
|
||||
+ " id INTEGER PRIMARY KEY,"
|
||||
+ " name TEXT NOT NULL,"
|
||||
+ " owner_uuid TEXT NOT NULL"
|
||||
+ ");";
|
||||
|
||||
// SQL statement for creating members table
|
||||
String sqlMembers = "CREATE TABLE IF NOT EXISTS members ("
|
||||
+ " uuid TEXT PRIMARY KEY,"
|
||||
+ " username TEXT NOT NULL,"
|
||||
+ " gang_id INTEGER NOT NULL,"
|
||||
+ " rank TEXT NOT NULL,"
|
||||
+ " FOREIGN KEY (gang_id) REFERENCES gangs(id)"
|
||||
+ ");";
|
||||
|
||||
try (Connection conn = connect();
|
||||
Statement stmt = conn.createStatement()) {
|
||||
// Create the gangs and members tables
|
||||
stmt.execute(sqlGangs);
|
||||
stmt.execute(sqlMembers);
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void createGang(String name, String ownerUuid) {
|
||||
String sql = "INSERT INTO gangs(name, owner_uuid) VALUES(?,?)";
|
||||
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, name);
|
||||
pstmt.setString(2, ownerUuid);
|
||||
pstmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addMember(String uuid, String username, int gangId, String rank) {
|
||||
String sql = "INSERT INTO members(uuid, username, gang_id, rank) VALUES(?,?,?,?)";
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, uuid);
|
||||
pstmt.setString(2, username);
|
||||
pstmt.setInt(3, gangId);
|
||||
pstmt.setString(4, rank);
|
||||
int affectedRows = pstmt.executeUpdate();
|
||||
return affectedRows > 0; // Return true if the row was added successfully
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false; // Return false if an error occurs
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getGangIdByName(String name) {
|
||||
String sql = "SELECT id FROM gangs WHERE name = ?";
|
||||
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)){
|
||||
|
||||
pstmt.setString(1,name);
|
||||
ResultSet rs = pstmt.executeQuery();
|
||||
|
||||
// Only return the first id
|
||||
if (rs.next()) {
|
||||
return rs.getInt("id");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
return null; // Gang not found
|
||||
}
|
||||
|
||||
public Integer getGangIdByOwnerUuid(String ownerUuid) {
|
||||
String sql = "SELECT id FROM gangs WHERE owner_uuid = ?";
|
||||
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)){
|
||||
|
||||
pstmt.setString(1,ownerUuid);
|
||||
ResultSet rs = pstmt.executeQuery();
|
||||
|
||||
// Only return the first id
|
||||
if (rs.next()) {
|
||||
return rs.getInt("id");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
return null; // Gang not found
|
||||
}
|
||||
|
||||
public String getCurrentGangByPlayerUuid(UUID playerUuid) {
|
||||
String sql = "SELECT g.name FROM gangs g INNER JOIN members m ON g.id = m.gang_id WHERE m.uuid = ?";
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, playerUuid.toString());
|
||||
try (ResultSet rs = pstmt.executeQuery()) {
|
||||
if (rs.next()) {
|
||||
return rs.getString("name");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
return null; // Return null if the player is not part of any gang or an error occurs
|
||||
}
|
||||
|
||||
// GANG INVITES
|
||||
|
||||
// Method to invite a player to a gang, limited to Gang Owner and Capo
|
||||
public boolean canInvite(String playerUuid) {
|
||||
// Example implementation
|
||||
String sql = "SELECT rank FROM members WHERE uuid = ?";
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, playerUuid);
|
||||
ResultSet rs = pstmt.executeQuery();
|
||||
if (rs.next()) {
|
||||
String rank = rs.getString("rank");
|
||||
return "Owner".equalsIgnoreCase(rank) || "Capo".equalsIgnoreCase(rank);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
return false; // Player cannot invite or an error occurred
|
||||
}
|
||||
|
||||
|
||||
// Add Gang Invite
|
||||
public boolean addInvitation(String playerUuid, String gangName) {
|
||||
// This method would implement the logic to add an invitation.
|
||||
// For demonstration, let's assume we're directly adding them to the gang with a "Pending" rank.
|
||||
// You'll need to adjust this based on how you decide to manage invitations.
|
||||
Integer gangId = getGangIdByName(gangName);
|
||||
if (gangId == null) {
|
||||
return false; // Gang not found
|
||||
}
|
||||
// Assuming a "Pending" status for new invites
|
||||
addMember(playerUuid, "Pending", gangId, "Pending");
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean updateMemberRank(UUID playerUuid, String gangName, String newRank) {
|
||||
String sql = "UPDATE members SET rank = ? WHERE uuid = ? AND gang_id = (SELECT id FROM gangs WHERE name = ?)";
|
||||
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, newRank);
|
||||
pstmt.setString(2, playerUuid.toString());
|
||||
pstmt.setString(3, gangName);
|
||||
|
||||
int affectedRows = pstmt.executeUpdate();
|
||||
return affectedRows > 0;
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean removeMember(UUID playerUuid, String gangName) {
|
||||
String sql = "DELETE FROM members WHERE uuid = ? AND gang_id = (SELECT id FROM gangs WHERE name = ?)";
|
||||
|
||||
try (Connection conn = this.connect();
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setString(1, playerUuid.toString());
|
||||
pstmt.setString(2, gangName);
|
||||
|
||||
int affectedRows = pstmt.executeUpdate();
|
||||
return affectedRows > 0;
|
||||
} catch (SQLException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
package me.nvus.nvus_prison_setup.Gangs;
|
||||
|
||||
import me.nvus.nvus_prison_setup.Database.DatabaseManager;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import java.util.UUID;
|
||||
|
||||
public class GangCommands implements CommandExecutor {
|
||||
|
||||
private final GangManager gangManager;
|
||||
|
||||
public GangCommands(DatabaseManager dbManager) {
|
||||
this.gangManager = new GangManager(dbManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
sender.sendMessage("Only players can execute this command.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
UUID playerUuid = player.getUniqueId();
|
||||
|
||||
if (args.length >= 2 && args[0].equalsIgnoreCase("gang")) {
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "invite":
|
||||
return handleGangInvite(sender, args);
|
||||
case "accept":
|
||||
// Dynamically determine the gangName the player is invited to join
|
||||
return handleGangAccept(player, playerUuid);
|
||||
case "deny":
|
||||
// Dynamically determine the gangName the player wants to deny
|
||||
return handleGangDeny(player, playerUuid);
|
||||
case "leave":
|
||||
return handleGangLeave(player, playerUuid);
|
||||
default:
|
||||
player.sendMessage("Invalid gang command.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean handleGangInvite(CommandSender sender, String[] args) {
|
||||
if (args.length != 3) {
|
||||
sender.sendMessage("Usage: /nvus gang invite <playerName> <gangName>");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
String targetPlayerName = args[1];
|
||||
String gangName = args[2];
|
||||
Player targetPlayer = sender.getServer().getPlayer(targetPlayerName);
|
||||
if (targetPlayer == null) {
|
||||
sender.sendMessage("Could not find player: " + targetPlayerName);
|
||||
return true;
|
||||
}
|
||||
|
||||
UUID targetPlayerUuid = targetPlayer.getUniqueId();
|
||||
if (!gangManager.canInvite(player.getUniqueId())) {
|
||||
sender.sendMessage("You do not have permission to invite players to this gang.");
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean invited = gangManager.addInvitation(targetPlayerUuid, gangName);
|
||||
sender.sendMessage(invited ? "Player invited to gang successfully." : "Failed to invite player to gang.");
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleGangAccept(Player player, UUID playerUuid) {
|
||||
String gangName = gangManager.getCurrentGangName(playerUuid); // Method in GangManager to determine the gangName
|
||||
if (gangName == null) {
|
||||
player.sendMessage("You don't have any pending invitations.");
|
||||
return true;
|
||||
}
|
||||
if (gangManager.acceptInvitation(playerUuid, gangName)) {
|
||||
player.sendMessage("You have successfully joined the gang: " + gangName + "!");
|
||||
} else {
|
||||
player.sendMessage("Failed to join the gang.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleGangDeny(Player player, UUID playerUuid) {
|
||||
String gangName = gangManager.getCurrentGangName(playerUuid); // Similar method as accept to find the gangName
|
||||
if (gangName == null) {
|
||||
player.sendMessage("You don't have any pending invitations to deny.");
|
||||
return true;
|
||||
}
|
||||
if (gangManager.denyInvitation(playerUuid, gangName)) {
|
||||
player.sendMessage("You have successfully denied the gang invitation from: " + gangName + ".");
|
||||
} else {
|
||||
player.sendMessage("Failed to deny the gang invitation.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleGangLeave(Player player, UUID playerUuid) {
|
||||
String gangName = gangManager.getCurrentGangName(playerUuid); // Method to get current gang of the player
|
||||
if (gangName == null) {
|
||||
player.sendMessage("You are not part of any gang!");
|
||||
return true;
|
||||
}
|
||||
if (gangManager.leaveGang(playerUuid, gangName)) {
|
||||
player.sendMessage("You have successfully left the gang: " + gangName + ".");
|
||||
} else {
|
||||
player.sendMessage("Failed to leave the gang.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
package me.nvus.nvus_prison_setup.Gangs;
|
||||
|
||||
import java.util.UUID;
|
||||
import me.nvus.nvus_prison_setup.Database.DatabaseManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class GangManager {
|
||||
|
||||
private final DatabaseManager dbManager;
|
||||
|
||||
public GangManager(DatabaseManager dbManager) {
|
||||
this.dbManager = dbManager;
|
||||
}
|
||||
|
||||
public boolean createGang(String gangName, UUID ownerUuid) {
|
||||
if (dbManager.getGangIdByName(gangName) != null) {
|
||||
return false;
|
||||
}
|
||||
dbManager.createGang(gangName, ownerUuid.toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
// Method to add a member to a gang
|
||||
public boolean addMemberToGang(String username, UUID uuid, String gangName, String rank) {
|
||||
Integer gangId = dbManager.getGangIdByName(gangName);
|
||||
if (gangId == null) {
|
||||
// Gang does not exist
|
||||
return false;
|
||||
}
|
||||
// Add the member to the gang with the specified rank
|
||||
dbManager.addMember(uuid.toString(), username, gangId, rank);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check if a player can invite others to the gang
|
||||
public boolean canInvite(UUID playerUuid) {
|
||||
// Implement logic to check if the player has the rank of Owner or Capo
|
||||
// This requires a method in DatabaseManager to check the player's rank in their gang
|
||||
return dbManager.canInvite(playerUuid.toString());
|
||||
}
|
||||
|
||||
// Add an invitation to the gang
|
||||
public boolean addInvitation(UUID playerUuid, String gangName) {
|
||||
// For simplicity, this example directly adds the player to the gang
|
||||
// You might want to implement a more complex invitation system
|
||||
Integer gangId = dbManager.getGangIdByName(gangName);
|
||||
if (gangId == null) {
|
||||
// Gang does not exist
|
||||
return false;
|
||||
}
|
||||
// Assume a default rank for new invites, e.g., "Pending" or "Member"
|
||||
String username = resolveUsername(playerUuid); // You need to implement this method
|
||||
return dbManager.addMember(playerUuid.toString(), username, gangId, "Pending");
|
||||
}
|
||||
|
||||
// Method for a player to accept a gang invitation
|
||||
public boolean acceptInvitation(UUID playerUuid, String gangName) {
|
||||
return dbManager.updateMemberRank(playerUuid, gangName, "Member");
|
||||
}
|
||||
|
||||
// Method for a player to deny a gang invitation or to be removed from the gang
|
||||
public boolean denyInvitation(UUID playerUuid, String gangName) {
|
||||
return dbManager.removeMember(playerUuid, gangName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private String resolveUsername(UUID uuid) {
|
||||
Player player = Bukkit.getPlayer(uuid);
|
||||
if (player != null) {
|
||||
return player.getName();
|
||||
} else {
|
||||
// The player might be offline or the UUID might not correspond to a known player.
|
||||
// Decide how you want to handle this case. For now, returning null or a placeholder.
|
||||
return null; // Consider an alternative approach based on your plugin's requirements.
|
||||
}
|
||||
}
|
||||
|
||||
public String getCurrentGangName(UUID playerUuid) {
|
||||
// Call the DatabaseManager method to get the current gang name by player's UUID
|
||||
return dbManager.getCurrentGangByPlayerUuid(playerUuid);
|
||||
}
|
||||
|
||||
public boolean leaveGang(UUID playerUuid, String gangName) {
|
||||
// Before removing a member, you may need to get the gang's ID based on its name
|
||||
Integer gangId = dbManager.getGangIdByName(gangName);
|
||||
if (gangId == null) {
|
||||
// This means the gang doesn't exist, which could indicate an issue with the provided gangName
|
||||
return false;
|
||||
}
|
||||
// Proceed to remove the player from the gang
|
||||
return dbManager.removeMember(playerUuid, gangName);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -109,4 +109,5 @@ public class CommandListener implements CommandExecutor {
|
|||
configManager.saveConfig("config.yml");
|
||||
sender.sendMessage(ChatColor.GREEN + key + " set to " + boolValue + ".");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package me.nvus.nvus_prison_setup;
|
|||
import me.nvus.nvus_prison_setup.Configs.ConfigManager;
|
||||
import me.nvus.nvus_prison_setup.Listeners.CommandListener;
|
||||
import me.nvus.nvus_prison_setup.Configs.SettingsMenu;
|
||||
// Listeners
|
||||
import me.nvus.nvus_prison_setup.Listeners.PlayerArmor;
|
||||
import me.nvus.nvus_prison_setup.Listeners.PlayerItems;
|
||||
import me.nvus.nvus_prison_setup.Listeners.PlayerSpawn;
|
||||
|
@ -10,6 +11,11 @@ import me.nvus.nvus_prison_setup.Listeners.BlockListener;
|
|||
import me.nvus.nvus_prison_setup.Listeners.ToolSwitchListener;
|
||||
import me.nvus.nvus_prison_setup.Updater.UpdateChecker;
|
||||
import me.nvus.nvus_prison_setup.Listeners.ToolDamageListener;
|
||||
// Database
|
||||
import me.nvus.nvus_prison_setup.Database.DatabaseManager;
|
||||
// Gangs
|
||||
import me.nvus.nvus_prison_setup.Gangs.GangCommands;
|
||||
import me.nvus.nvus_prison_setup.Gangs.GangManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -18,32 +24,50 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||
public final class PrisonSetup extends JavaPlugin {
|
||||
|
||||
private ConfigManager configManager;
|
||||
private DatabaseManager dbManager; // Adjusted for clarity
|
||||
private GangManager gangManager; // Added reference to GangManager
|
||||
// Initialize the DatabaseManager
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Initialize the ConfigManager
|
||||
configManager = new ConfigManager(this);
|
||||
|
||||
// Gangs & Database
|
||||
dbManager = new DatabaseManager(); // Initialize the DatabaseManager
|
||||
gangManager = new GangManager(dbManager); // Initialize GangManager with DatabaseManager
|
||||
|
||||
|
||||
|
||||
// Save the default configs, if they doesn't exist
|
||||
configManager.saveDefaultConfig("config.yml");
|
||||
configManager.saveDefaultConfig("banned_items.yml");
|
||||
configManager.saveDefaultConfig("auto_switch.yml");
|
||||
|
||||
// Register event listeners
|
||||
// Register Event Listeners
|
||||
getServer().getPluginManager().registerEvents(new PlayerSpawn(configManager), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerArmor(configManager), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerItems(configManager), this);
|
||||
getServer().getPluginManager().registerEvents(new BlockListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new ToolSwitchListener(configManager), this);
|
||||
this.getCommand("nvus").setExecutor(new CommandListener(this, configManager));
|
||||
//new SettingsMenu(this, configManager);
|
||||
|
||||
// Gang Related
|
||||
// Register the Gang Commands
|
||||
this.getCommand("gang create").setExecutor(new GangCommands(dbManager));
|
||||
this.getCommand("gang invite").setExecutor(new GangCommands(dbManager));
|
||||
|
||||
// Settings Menu
|
||||
getServer().getPluginManager().registerEvents(new SettingsMenu(this, configManager), this);
|
||||
|
||||
// Tool Damage
|
||||
ToolDamageListener toolDamageListener = new ToolDamageListener(configManager);
|
||||
getServer().getPluginManager().registerEvents(toolDamageListener, this);
|
||||
|
||||
// Successful Startup/Enable
|
||||
getLogger().info(ChatColor.translateAlternateColorCodes('&',"&a&lNVus Prison Setup has been successfully enabled!"));
|
||||
|
||||
// UPDATE CHECKER
|
||||
new UpdateChecker(this, 12345).getVersion(version -> {
|
||||
if (!this.getDescription().getVersion().equals(version)) {
|
||||
getLogger().info("There is a new update available for NVus Prison Setup! Grab it from SpigotMC here: https://www.spigotmc.org/resources/nvus-prison-setup.115441/");
|
||||
|
@ -77,4 +101,13 @@ public final class PrisonSetup extends JavaPlugin {
|
|||
public ConfigManager getConfigManager() {
|
||||
return configManager;
|
||||
}
|
||||
|
||||
// Optionally, if other parts of your plugin need to access the DatabaseManager or GangManager
|
||||
public DatabaseManager getDatabaseManager() {
|
||||
return dbManager;
|
||||
}
|
||||
|
||||
public GangManager getGangManager() {
|
||||
return gangManager;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue