diff --git a/pom.xml b/pom.xml
index 49bfd42..0e5b60e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.NVus
NVus_Prison
- 1.0.5
+ 1.0.6
jar
NVus_PrisonSetup
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
new file mode 100644
index 0000000..3b827a6
--- /dev/null
+++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java
@@ -0,0 +1,64 @@
+package me.nvus.nvus_prison_setup.Placeholders;
+
+import me.clip.placeholderapi.expansion.PlaceholderExpansion;
+import org.bukkit.entity.Player;
+import me.nvus.nvus_prison_setup.Ranks.RankManager;
+import me.nvus.nvus_prison_setup.Gangs.GangManager;
+import me.nvus.nvus_prison_setup.Gangs.GangInfo;
+import me.nvus.nvus_prison_setup.Ranks.Rank;
+
+public class CombinedPlaceholders extends PlaceholderExpansion {
+
+ private final GangManager gangManager;
+ private final RankManager rankManager;
+
+ public CombinedPlaceholders(GangManager gangManager, RankManager rankManager) {
+ this.gangManager = gangManager;
+ this.rankManager = rankManager;
+ }
+
+ @Override
+ public String getIdentifier() {
+ return "nvus";
+ }
+
+ @Override
+ public String getAuthor() {
+ return "never2nv";
+ }
+
+ @Override
+ public String getVersion() {
+ return "1.0";
+ }
+
+ @Override
+ public String onPlaceholderRequest(Player player, String identifier) {
+ if (player == null) {
+ return "";
+ }
+
+ switch (identifier) {
+ case "gang_name":
+ String gangName = gangManager.getCurrentGangName(player.getUniqueId());
+ return gangName != null ? gangName : "No Gang";
+ case "gang_owner":
+ GangInfo gangInfo = gangManager.getGangInfo(gangManager.getCurrentGangName(player.getUniqueId()));
+ return gangInfo != null ? gangInfo.getOwnerName() : "No Gang";
+ case "gang_members":
+ GangInfo gangInfoMembers = gangManager.getGangInfo(gangManager.getCurrentGangName(player.getUniqueId()));
+ return gangInfoMembers != null ? String.valueOf(gangInfoMembers.getMemberCount()) : "No Gang";
+ case "rank_current":
+ Rank currentRank = rankManager.getCurrentRank(player);
+ return currentRank != null ? currentRank.getName() : "Unranked";
+ case "rank_next":
+ Rank nextRank = rankManager.getNextRank(player);
+ return nextRank != null ? nextRank.getName() : "Highest Rank";
+ 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/Placeholders/GangPlaceholders.java b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
deleted file mode 100644
index 6117b4f..0000000
--- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package me.nvus.nvus_prison_setup.Placeholders;
-
-import me.clip.placeholderapi.expansion.PlaceholderExpansion;
-import org.bukkit.entity.Player;
-import me.nvus.nvus_prison_setup.Gangs.GangManager;
-import me.nvus.nvus_prison_setup.Gangs.GangInfo;
-
-public class GangPlaceholders extends PlaceholderExpansion {
-
- private GangManager gangManager;
-
- public GangPlaceholders(GangManager gangManager) {
- this.gangManager = gangManager;
- }
-
- @Override
- public String getIdentifier() {
- return "nvus";
- }
-
- @Override
- public String getAuthor() {
- return "never2nv";
- }
-
- @Override
- public String getVersion() {
- return "1.1";
- }
-
- @Override
- public String onPlaceholderRequest(Player player, String identifier) {
- if (player == null) {
- return "";
- }
-
- String gangName = gangManager.getCurrentGangName(player.getUniqueId());
- if (gangName == null) {
- return "No Gang";
- }
-
- GangInfo gangInfo = gangManager.getGangInfo(gangName);
- if (gangInfo == null) {
- return "Gang information could not be retrieved.";
- }
-
- switch (identifier) {
- case "gang_name":
- return gangInfo.getName();
- case "gang_owner":
- return gangInfo.getOwnerName();
- case "gang_members":
- return String.valueOf(gangInfo.getMemberCount());
- 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 30b5c88..47a4e33 100644
--- a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java
+++ b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java
@@ -9,7 +9,6 @@ import me.nvus.nvus_prison_setup.Listeners.PlayerItems;
import me.nvus.nvus_prison_setup.Listeners.PlayerSpawn;
import me.nvus.nvus_prison_setup.Listeners.BlockListener;
import me.nvus.nvus_prison_setup.Listeners.ToolSwitchListener;
-import me.nvus.nvus_prison_setup.Placeholders.GangPlaceholders;
import me.nvus.nvus_prison_setup.Ranks.RankCommands;
import me.nvus.nvus_prison_setup.Ranks.RankListener;
import me.nvus.nvus_prison_setup.Ranks.RankManager;
@@ -20,6 +19,8 @@ import me.nvus.nvus_prison_setup.AutoSell.SellManager;
import me.nvus.nvus_prison_setup.AutoSell.Listeners.AutoSellListener;
import me.nvus.nvus_prison_setup.Kit.Listeners.KitListener;
import me.nvus.nvus_prison_setup.Listeners.CommandListener;
+// Placeholders
+import me.nvus.nvus_prison_setup.Placeholders.CombinedPlaceholders;
// Database
import me.nvus.nvus_prison_setup.Database.DatabaseManager;
// Gangs
@@ -106,7 +107,7 @@ public final class PrisonSetup extends JavaPlugin {
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();
+ new CombinedPlaceholders(gangManager, rankManager).register();
}
@@ -154,6 +155,10 @@ public final class PrisonSetup extends JavaPlugin {
// Register RankListener
getServer().getPluginManager().registerEvents(new RankListener(rankManager), this);
+ // Handled after checking if server has PlaceholderAPI installed or not.
+ // Combined Gang and Rank placeholders into one file now!
+// new RankPlaceholders(rankManager).register();
+
// Register commands
this.getCommand("rankup").setExecutor(new RankCommands(this));
this.getCommand("ranks").setExecutor(new RankCommands(this));