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));