diff --git a/pom.xml b/pom.xml
index 2d37c9e..97154b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.NVus
NVus_Prison
- 1.0.8
+ 1.1.0
jar
NVus_PrisonSetup
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java b/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java
index 48ef035..a1d64a7 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Configs/SettingsMenu.java
@@ -41,13 +41,21 @@ public class SettingsMenu implements Listener {
inv.setItem(4, createToggleItem(Material.LEVER, "Toggle AutoSwitch", config.getBoolean("AutoSwitch", true)));
inv.setItem(5, createToggleItem(Material.IRON_PICKAXE, "Toggle ToolDamage", config.getBoolean("ToolDamage", false)));
+ inv.setItem(7, createToggleItem(Material.IRON_BARS , "Toggle PrisonerGangs", false));
inv.setItem(8, createToggleItem(Material.BOOK, "Reload Configs", false));
// Second Row
inv.setItem(9, createToggleItem(Material.GOLD_INGOT, "Toggle AutoSell", config.getBoolean("AutoSell", true)));
inv.setItem(10, createToggleItem(Material.GOLD_BLOCK, "Toggle SellAll", config.getBoolean("SellAll", true)));
- inv.setItem(11, createToggleItem(Material.OAK_SAPLING, "Toggle TreeFarm", config.getBoolean("TreeFarm", true)));
+ inv.setItem(12, createToggleItem(Material.OAK_SAPLING, "Toggle TreeFarm", config.getBoolean("TreeFarm", true)));
+ inv.setItem(13, createToggleItem(Material.SUNFLOWER, "Toggle PrisonerRanks", config.getBoolean("PrisonerRanks", true)));
+
+ inv.setItem(15, createToggleItem(Material.IRON_SHOVEL, "Toggle PrisonerKit", config.getBoolean("PrisonerKit", true)));
+ inv.setItem(16, createToggleItem(Material.BARRIER, "Toggle RestrictKitDrop", config.getBoolean("RestrictKitDrop", true)));
+ inv.setItem(17, createToggleItem(Material.BARRIER, "Toggle RestrictKitMove", config.getBoolean("RestrictKitMove", true)));
+
+
player.openInventory(inv);
}
@@ -102,10 +110,28 @@ public class SettingsMenu implements Listener {
toggleConfigOption(player, "AutoSwitch");
} else if (displayName.contains("Toggle AutoSell")) {
toggleConfigOption(player, "AutoSell");
+ player.sendMessage(ChatColor.GREEN + "Requires a server restart to take effect. Or external plugin reload ie PlugManX");
} else if (displayName.contains("Toggle SellAll")) {
toggleConfigOption(player, "SellAll");
+ player.sendMessage(ChatColor.GREEN + "Requires a server restart to take effect. Or external plugin reload ie PlugManX");
} else if (displayName.contains("Toggle TreeFarm")) {
toggleConfigOption(player, "TreeFarm");
+ player.sendMessage(ChatColor.GREEN + "Requires a server restart to take effect. Or external plugin reload ie PlugManX");
+ } else if (displayName.contains("Toggle PrisonerGangs")) {
+ toggleConfigOption(player, "PrisonerGangs");
+ player.sendMessage(ChatColor.GREEN + "Requires a server restart to take effect. Or external plugin reload ie PlugManX");
+ }
+ else if (displayName.contains("Toggle PrisonerRanks")) {
+ toggleConfigOption(player, "PrisonerRanks");
+ player.sendMessage(ChatColor.GREEN + "Requires a server restart to take effect. Or external plugin reload ie PlugManX");
+ } else if (displayName.contains("Toggle PrisonerKit")) {
+ toggleConfigOption(player, "PrisonerKit");
+ } else if (displayName.contains("Toggle RestrictKitDrop")) {
+ toggleConfigOption(player, "RestrictKitDrop");
+ } else if (displayName.contains("Toggle RestrictKitMove")) {
+ toggleConfigOption(player, "RestrictKitMove");
+ } else if (displayName.contains("Toggle ToolDamage")) {
+ toggleConfigOption(player, "ToolDamage");
} else if (displayName.contains("Reload Configs")) {
reloadConfigs(player);
}
@@ -139,6 +165,7 @@ public class SettingsMenu implements Listener {
configManager.reloadConfig("auto_switch.yml");
configManager.reloadConfig("banned_items.yml");
configManager.reloadConfig("item_prices.yml");
+ configManager.reloadConfig("ranks.yml");
//configManager.saveConfig("config.yml");
player.sendMessage(ChatColor.GREEN + "[NVus Prison] : Configuration files reloaded!");
player.closeInventory();
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Kit/Listeners/KitListener.java b/src/main/java/me/nvus/nvus_prison_setup/Kit/Listeners/KitListener.java
index 859bc3d..d448653 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Kit/Listeners/KitListener.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Kit/Listeners/KitListener.java
@@ -2,6 +2,7 @@ package me.nvus.nvus_prison_setup.Kit.Listeners;
import me.nvus.nvus_prison_setup.Configs.ConfigManager;
import me.nvus.nvus_prison_setup.Kit.KitManager;
+import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
@@ -91,7 +92,8 @@ public class KitListener implements Listener {
if (kitManager.isPrisonerKitItem(droppedItem)) {
event.setCancelled(true);
- player.sendMessage("§c&lPER THE WARDEN: You cannot drop your prisoner kit items!");
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', "§c&lPER THE WARDEN: You cannot drop your prisoner kit items!"));
+// player.sendMessage("§c&lPER THE WARDEN: You cannot drop your prisoner kit items!");
}
}
@@ -114,7 +116,7 @@ public class KitListener implements Listener {
if (kitManager.isPrisonerKitItem(clickedItem)) {
event.setCancelled(true);
- player.sendMessage("§cPER THE WARDEN: You cannot move your prisoner kit items!");
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', "§c&lPER THE WARDEN: You cannot move your prisoner kit items!"));
}
}
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerArmor.java b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerArmor.java
index fe365d0..6f8f082 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerArmor.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Listeners/PlayerArmor.java
@@ -52,6 +52,7 @@ public class PlayerArmor implements Listener {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&lPer The Warden: &c You cannot change your armor!"));
}
// If restrictArmor is false, allows the player to change armor freely.
+
}
}
}
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java
deleted file mode 100644
index 52d9001..0000000
--- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package me.nvus.nvus_prison_setup.Placeholders;
-
-import me.clip.placeholderapi.expansion.PlaceholderExpansion;
-import org.bukkit.entity.Player;
-
-public class CombinedPlaceholders extends PlaceholderExpansion {
- private final PlaceholderManager placeholderManager;
-
- public CombinedPlaceholders(PlaceholderManager placeholderManager) {
- this.placeholderManager = placeholderManager;
- }
-
- @Override
- public String getIdentifier() {
- return "nvus";
- }
-
- @Override
- public String getAuthor() {
- return "never2nv";
- }
-
- @Override
- public String getVersion() {
- return "1.2";
- }
-
- @Override
- public String onPlaceholderRequest(Player player, String identifier) {
- if (player == null) {
- return "";
- }
-
- switch (identifier) {
- case "rank_current":
- return placeholderManager.getCurrentRankName(player);
- case "rank_next":
- return placeholderManager.getNextRankName(player);
- case "rank_cost":
- double cost = placeholderManager.getNextRankCost(player);
- return cost >= 0 ? String.format("$%.2f", cost) : "N/A";
- case "gang_name":
- return placeholderManager.getCurrentGangName(player);
- case "gang_owner":
- String gangName = placeholderManager.getCurrentGangName(player);
- return placeholderManager.getGangOwnerName(gangName);
- case "gang_members":
- gangName = placeholderManager.getCurrentGangName(player);
- return String.valueOf(placeholderManager.getGangMemberCount(gangName));
- default:
- return null;
- }
- }
-}
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
index 64a9902..e2006d1 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
@@ -36,12 +36,12 @@ public class GangPlaceholders extends PlaceholderExpansion {
String gangName = gangManager.getCurrentGangName(player.getUniqueId());
if (gangName == null) {
- return "No Gang";
+ return " ";
}
GangInfo gangInfo = gangManager.getGangInfo(gangName);
if (gangInfo == null) {
- return "Gang information could not be retrieved.";
+ return " ";
}
switch (identifier) {
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java
index a51fd76..f23c1f8 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java
@@ -4,6 +4,10 @@ import me.nvus.nvus_prison_setup.Gangs.GangInfo;
import me.nvus.nvus_prison_setup.Gangs.GangManager;
import me.nvus.nvus_prison_setup.Ranks.Rank;
import me.nvus.nvus_prison_setup.Ranks.RankManager;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
import org.bukkit.entity.Player;
public class PlaceholderManager {
@@ -39,8 +43,19 @@ public class PlaceholderManager {
return nextRank != null ? nextRank.getName() : "Max Rank";
}
- public double getNextRankCost(Player player) {
+ public String getNextRankCost(Player player) {
Rank nextRank = rankManager.getNextRank(player);
- return nextRank != null ? nextRank.getCost() : -1;
+ if (nextRank != null) {
+ double cost = nextRank.getCost();
+ // Using the US locale as an example for currency formatting
+ NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);
+ return currencyFormat.format(cost);
+ }
+ return "$0.00"; // or however you wish to indicate a null or zero value
}
+
+// public double getNextRankCost(Player player) {
+// Rank nextRank = rankManager.getNextRank(player);
+// return nextRank != null ? nextRank.getCost() : -1;
+// }
}
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java
index 3103f7f..1f43005 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java
@@ -5,6 +5,8 @@ import org.bukkit.entity.Player;
import me.nvus.nvus_prison_setup.Ranks.RankManager;
import me.nvus.nvus_prison_setup.Ranks.Rank;
+import java.text.DecimalFormat;
+
public class RankPlaceholders extends PlaceholderExpansion {
private final RankManager rankManager;
@@ -45,7 +47,16 @@ public class RankPlaceholders extends PlaceholderExpansion {
case "rank_cost":
Rank rankForCost = rankManager.getNextRank(player);
- return rankForCost != null ? String.format("$%.2f", rankForCost.getCost()) : "N/A";
+ if (rankForCost != null) {
+ DecimalFormat decimalFormat = new DecimalFormat("$###,###.00");
+ return decimalFormat.format(rankForCost.getCost());
+ } else {
+ return "N/A";
+ }
+
+// case "rank_cost":
+// Rank rankForCost = rankManager.getNextRank(player);
+// return rankForCost != null ? String.format("$%.2f", rankForCost.getCost()) : "N/A";
default:
return null;
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 eed976a..0999e7a 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java
@@ -92,7 +92,7 @@ public final class PrisonSetup extends JavaPlugin {
// Check if Vault is installed, it's a hard dependency so disable plugin if not installed!
if (!setupEconomy()) {
- getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
+ getLogger().severe(String.format("[%s] - Disabled! Vault needs to be installed!", getDescription().getName()));
getServer().getPluginManager().disablePlugin(this);
return;
}
@@ -106,16 +106,18 @@ public final class PrisonSetup extends JavaPlugin {
this.getCommand("nvus").setExecutor(new CommandListener(this, configManager));
// Gang Related... GANG, GANG #LOLOLOLOL
- this.getCommand("gang").setExecutor(new GangCommands(dbManager)); // Now correctly using initialized dbManager
- // Register the Gangs placeholder expansion
- if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
-// PlaceholderManager placeholderManager = new PlaceholderManager(gangManager, rankManager);
-// new CombinedPlaceholders(placeholderManager).register();
- new GangPlaceholders(gangManager).register();
+ boolean gangsEnabled = configManager.getConfig("config.yml").getBoolean("PrisonerGangs", true);
+ if (gangsEnabled) {
+ this.getCommand("gang").setExecutor(new GangCommands(dbManager)); // Now correctly using initialized dbManager
+ // Register the Gangs placeholder expansion
+ if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
+ new GangPlaceholders(gangManager).register();
+ }
}
+
// Register the Auto Sell and Sell All Listeners
boolean autoSellEnabled = configManager.getConfig("config.yml").getBoolean("AutoSell", true);
boolean sellAllEnabled = configManager.getConfig("config.yml").getBoolean("SellAll", true);
diff --git a/src/main/java/me/nvus/nvus_prison_setup/Ranks/RankManager.java b/src/main/java/me/nvus/nvus_prison_setup/Ranks/RankManager.java
index 6a37dd1..cf9b3a1 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/Ranks/RankManager.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/Ranks/RankManager.java
@@ -9,6 +9,8 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.List;
+import java.text.DecimalFormat;
+
public class RankManager {
@@ -36,7 +38,7 @@ public class RankManager {
public boolean rankUp(Player player) {
Rank nextRank = getNextRank(player);
if (nextRank == null) {
- player.sendMessage(ChatColor.RED + "You are already at the highest rank!");
+ player.sendMessage(ChatColor.RED + "You are already at the max rank!");
return false;
}
@@ -46,18 +48,50 @@ public class RankManager {
if (response.transactionSuccess()) {
dbManager.updatePlayerRankData(player, nextRank);
executeRankCommands(player, nextRank.getCommands());
- //player.sendMessage(ChatColor.GREEN + "Congratulations! You've been ranked up to " + nextRank.getName() + ".");
+ // Success message can also be formatted if needed
return true;
} else {
player.sendMessage(ChatColor.RED + "Transaction failed: " + response.errorMessage);
return false;
}
} else {
- player.sendMessage(ChatColor.RED + "You cannot afford to rank up. You need $" + nextRank.getCost() + ", but you only have $" + balance + ".");
+ DecimalFormat decimalFormat = new DecimalFormat("$###,###,###.00");
+ String formattedCost = decimalFormat.format(nextRank.getCost());
+ String formattedBalance = decimalFormat.format(balance);
+ player.sendMessage(" ");
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&lYou cannot afford to rank up!"));
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6You need: &c" + formattedCost + "."));
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6But you only have: &a" + formattedBalance + "."));
+ player.sendMessage(" ");
return false;
}
}
+// public boolean rankUp(Player player) {
+// Rank nextRank = getNextRank(player);
+// if (nextRank == null) {
+// player.sendMessage(ChatColor.RED + "You are already at the max rank!");
+// return false;
+// }
+//
+// double balance = economy.getBalance(player);
+// if (balance >= nextRank.getCost()) {
+// EconomyResponse response = economy.withdrawPlayer(player, nextRank.getCost());
+// if (response.transactionSuccess()) {
+// dbManager.updatePlayerRankData(player, nextRank);
+// executeRankCommands(player, nextRank.getCommands());
+// //player.sendMessage(ChatColor.GREEN + "Congratulations! You've been ranked up to " + nextRank.getName() + ".");
+// return true;
+// } else {
+// player.sendMessage(ChatColor.RED + "Transaction failed: " + response.errorMessage);
+// return false;
+// }
+// } else {
+// player.sendMessage(ChatColor.RED + "You cannot afford to rank up. You need $" + nextRank.getCost() + ", but you only have $" + balance + ".");
+// return false;
+// }
+// }
+
private void executeRankCommands(Player player, List commands) {
if (commands == null || commands.isEmpty()) return;
for (String command : commands) {
@@ -70,17 +104,34 @@ public class RankManager {
Rank currentRank = getCurrentRank(player);
// Assuming you have a method to get all ranks sorted by cost
List allRanks = dbManager.getAllRanksSorted();
+ DecimalFormat decimalFormat = new DecimalFormat("$#,###.00");
for (Rank rank : allRanks) {
ranksMessage.append(ChatColor.YELLOW).append(rank.getName())
- .append(ChatColor.WHITE).append(" - $")
- .append(ChatColor.GREEN).append(rank.getCost()).append("\n");
+ .append(ChatColor.WHITE).append(" - ")
+ .append(ChatColor.GREEN).append(decimalFormat.format(rank.getCost())).append("\n");
}
- ranksMessage.append(ChatColor.GOLD + "\nYour current rank: " + ChatColor.YELLOW + currentRank.getName());
+ ranksMessage.append(ChatColor.GOLD + "\n� Your current rank: " + ChatColor.YELLOW + currentRank.getName());
double balance = economy.getBalance(player);
- ranksMessage.append(ChatColor.GOLD + "\nYour balance: " + ChatColor.GREEN + "$" + balance);
+ ranksMessage.append(ChatColor.GOLD + "\n� Your balance: " + ChatColor.GREEN + decimalFormat.format(balance));
return ranksMessage.toString();
}
+// public String getRanksDisplay(Player player) {
+// StringBuilder ranksMessage = new StringBuilder(ChatColor.GOLD + "Available Ranks:\n");
+// Rank currentRank = getCurrentRank(player);
+// // Assuming you have a method to get all ranks sorted by cost
+// List allRanks = dbManager.getAllRanksSorted();
+// for (Rank rank : allRanks) {
+// ranksMessage.append(ChatColor.YELLOW).append(rank.getName())
+// .append(ChatColor.WHITE).append(" - $")
+// .append(ChatColor.GREEN).append(rank.getCost()).append("\n");
+// }
+// ranksMessage.append(ChatColor.GOLD + "\n� Your current rank: " + ChatColor.YELLOW + currentRank.getName());
+// double balance = economy.getBalance(player);
+// ranksMessage.append(ChatColor.GOLD + "\n� Your balance: " + ChatColor.GREEN + "$" + balance);
+// return ranksMessage.toString();
+// }
+
public void assignDefaultRank(Player player) {
dbManager.assignPlayerToDefaultRank(player);
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 4cc86cf..dc401ca 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -119,6 +119,13 @@ TreeFarm: true
# Can configure the ranks in the ranks.yml file!
PrisonerRanks: true
+########################################################################################
+# PRISONER GANGS FEATURE #
+########################################################################################
+
+# Do you want to enable the Prisoner Gangs feature?
+PrisonerGangs: true
+
########################################################################################
# DATABASE SETTINGS #
########################################################################################