From 02c86def4bf021e50683b53c99d254a863009538 Mon Sep 17 00:00:00 2001
From: WildInterloper <156627888+WildInterloper@users.noreply.github.com>
Date: Fri, 15 Mar 2024 09:47:04 -0400
Subject: [PATCH] 1.0.7 - Hotfix, gang/rank placeholders.
---
pom.xml | 2 +-
.../Placeholders/CombinedPlaceholders.java | 42 +++++---------
.../Placeholders/GangPlaceholders.java | 58 +++++++++++++++++++
.../Placeholders/PlaceholderManager.java | 46 +++++++++++++++
.../Placeholders/RankPlaceholders.java | 54 +++++++++++++++++
.../nvus/nvus_prison_setup/PrisonSetup.java | 12 ++--
.../Ranks/PlayerRankData.java | 1 -
src/main/resources/config.yml | 16 ++---
8 files changed, 190 insertions(+), 41 deletions(-)
create mode 100644 src/main/java/me/nvus/nvus_prison_setup/Placeholders/GangPlaceholders.java
create mode 100644 src/main/java/me/nvus/nvus_prison_setup/Placeholders/PlaceholderManager.java
create mode 100644 src/main/java/me/nvus/nvus_prison_setup/Placeholders/RankPlaceholders.java
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