diff --git a/pom.xml b/pom.xml index 0e5b60e..b18d907 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.NVus NVus_Prison - 1.0.6 + 1.0.7 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 index 3b827a6..52d9001 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/CombinedPlaceholders.java @@ -2,19 +2,12 @@ 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 PlaceholderManager placeholderManager; - private final GangManager gangManager; - private final RankManager rankManager; - - public CombinedPlaceholders(GangManager gangManager, RankManager rankManager) { - this.gangManager = gangManager; - this.rankManager = rankManager; + public CombinedPlaceholders(PlaceholderManager placeholderManager) { + this.placeholderManager = placeholderManager; } @Override @@ -29,7 +22,7 @@ public class CombinedPlaceholders extends PlaceholderExpansion { @Override public String getVersion() { - return "1.0"; + return "1.2"; } @Override @@ -39,24 +32,21 @@ public class CombinedPlaceholders extends PlaceholderExpansion { } 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"; + return placeholderManager.getCurrentRankName(player); case "rank_next": - Rank nextRank = rankManager.getNextRank(player); - return nextRank != null ? nextRank.getName() : "Highest Rank"; + return placeholderManager.getNextRankName(player); case "rank_cost": - Rank rankForCost = rankManager.getNextRank(player); - return rankForCost != null ? String.format("$%.2f", rankForCost.getCost()) : "N/A"; + 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 new file mode 100644 index 0000000..64a9902 --- /dev/null +++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java @@ -0,0 +1,58 @@ +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; + } + } +} \ No newline at end of file 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 new file mode 100644 index 0000000..a51fd76 --- /dev/null +++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java @@ -0,0 +1,46 @@ +package me.nvus.nvus_prison_setup.Placeholders; + +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 org.bukkit.entity.Player; + +public class PlaceholderManager { + private final GangManager gangManager; + private final RankManager rankManager; + + public PlaceholderManager(GangManager gangManager, RankManager rankManager) { + this.gangManager = gangManager; + this.rankManager = rankManager; + } + + public String getCurrentGangName(Player player) { + return gangManager.getCurrentGangName(player.getUniqueId()); + } + + public String getGangOwnerName(String gangName) { + GangInfo gangInfo = gangManager.getGangInfo(gangName); + return gangInfo != null ? gangInfo.getOwnerName() : "No Gang"; + } + + public int getGangMemberCount(String gangName) { + GangInfo gangInfo = gangManager.getGangInfo(gangName); + return gangInfo != null ? gangInfo.getMemberCount() : 0; + } + + public String getCurrentRankName(Player player) { + Rank currentRank = rankManager.getCurrentRank(player); + return currentRank != null ? currentRank.getName() : "Unranked"; + } + + public String getNextRankName(Player player) { + Rank nextRank = rankManager.getNextRank(player); + return nextRank != null ? nextRank.getName() : "Max Rank"; + } + + 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 new file mode 100644 index 0000000..d1aa41f --- /dev/null +++ b/src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java @@ -0,0 +1,54 @@ +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.Ranks.Rank; + +public class RankPlaceholders extends PlaceholderExpansion { + + private final RankManager rankManager; + + public RankPlaceholders(RankManager rankManager) { + this.rankManager = rankManager; + } + + @Override + public String getIdentifier() { + return "prison"; + } + + @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 ""; + } + + switch (identifier) { + 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; + } + } +} \ No newline at end of file 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 47a4e33..c77b7eb 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java +++ b/src/main/java/me/nvus/nvus_prison_setup/PrisonSetup.java @@ -9,6 +9,7 @@ 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.PlaceholderManager; 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,7 +21,8 @@ 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; +import me.nvus.nvus_prison_setup.Placeholders.GangPlaceholders; +import me.nvus.nvus_prison_setup.Placeholders.RankPlaceholders; // Database import me.nvus.nvus_prison_setup.Database.DatabaseManager; // Gangs @@ -107,7 +109,9 @@ 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 CombinedPlaceholders(gangManager, rankManager).register(); +// PlaceholderManager placeholderManager = new PlaceholderManager(gangManager, rankManager); +// new CombinedPlaceholders(placeholderManager).register(); + new GangPlaceholders(gangManager).register(); } @@ -155,9 +159,7 @@ 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(); + new RankPlaceholders(rankManager).register(); // Register commands this.getCommand("rankup").setExecutor(new RankCommands(this)); diff --git a/src/main/java/me/nvus/nvus_prison_setup/Ranks/PlayerRankData.java b/src/main/java/me/nvus/nvus_prison_setup/Ranks/PlayerRankData.java index 0f35af2..966e096 100644 --- a/src/main/java/me/nvus/nvus_prison_setup/Ranks/PlayerRankData.java +++ b/src/main/java/me/nvus/nvus_prison_setup/Ranks/PlayerRankData.java @@ -26,6 +26,5 @@ public class PlayerRankData { return rankName; } - } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 2f22d46..4cc86cf 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -64,35 +64,35 @@ PrisonerKit: True # If PrisonerKit above is true: What items should be in the prisoner kit? PrisonerKitItems: - item: IRON_SWORD - name: "&7Prisoner's Sword" + name: "&7Prisoner Sword" lore: - "&7Standard issue" - - "&7Prisoner's Sword" + - "&7Prisoner Sword" slot: 0 enchantments: DAMAGE_ALL: 3 - item: IRON_PICKAXE - name: "&7Prisoner's Pickaxe" + name: "&7Prisoner Pickaxe" lore: - "&7Standard issue" - - "&7Prisoner's Pickaxe" + - "&7Prisoner Pickaxe" slot: 1 enchantments: EFFICIENCY: 3 UNBREAKING: 2 - item: IRON_AXE - name: "&7Prisoner's Axe" + name: "&7Prisoner Axe" lore: - "&7Standard issue" - - "&7Prisoner's Axe" + - "&7Prisoner Axe" slot: 2 enchantments: SHARPNESS: 2 - item: IRON_SHOVEL - name: "&7Prisoner's Shovel" + name: "&7Prisoner Shovel" lore: - "&7Standard issue" - - "&7Prisoner's Shovel" + - "&7Prisoner Shovel" slot: 3 enchantments: SILK_TOUCH: 1