1.0.7 - Hotfix, gang/rank placeholders.

This commit is contained in:
WildInterloper 2024-03-15 09:47:04 -04:00
parent d6560e3c88
commit 02c86def4b
8 changed files with 190 additions and 41 deletions

View File

@ -6,7 +6,7 @@
<groupId>me.NVus</groupId>
<artifactId>NVus_Prison</artifactId>
<version>1.0.6</version>
<version>1.0.7</version>
<packaging>jar</packaging>
<name>NVus_PrisonSetup</name>

View File

@ -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;
}

View File

@ -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;
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}
}

View File

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

View File

@ -26,6 +26,5 @@ public class PlayerRankData {
return rankName;
}
}

View File

@ -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