Skip to content
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>pk.ajneb97</groupId>
<artifactId>PlayerKits2</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.0.3-SNAPSHOT</version>

<properties>
<maven.compiler.source>21</maven.compiler.source>
Expand Down
20 changes: 17 additions & 3 deletions src/main/java/pk/ajneb97/managers/KitsManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,8 @@ public PlayerKitsMessageResult giveKit(Player player, String kitName, GiveKitIns
//Requirements - Buy
KitRequirements kitRequirements = kit.getRequirements();
if(!giveKitInstructions.isIgnoreRequirements() && kitRequirements != null &&
(kitRequirements.getPrice() != 0 || !kitRequirements.getExtraRequirements().isEmpty())){
(kitRequirements.getPrice() != 0 || !kitRequirements.getExtraRequirements().isEmpty())
&& !PlayerUtils.hasCostBypassPermission(player, kitName)){
if(!(kitRequirements.isOneTimeRequirements() && playerDataManager.isKitBought(player,kit.getName()))){
if(!giveKitInstructions.isRequirementsSatisfied()){
//Player must buy it first
Expand All @@ -202,7 +203,7 @@ public PlayerKitsMessageResult giveKit(Player player, String kitName, GiveKitIns
}

//Check price
if(!passPrice(kitRequirements.getPrice(),player)){
if(!passPrice(kitRequirements.getPrice(),player, kitName)){
sendKitActions(kit.getErrorActions(),player,false);
return PlayerKitsMessageResult.error(messagesFile.getString("requirementsError"));
}
Expand Down Expand Up @@ -336,7 +337,8 @@ public PlayerKitsMessageResult giveKit(Player player, String kitName, GiveKitIns

//Requirements - Buy
KitRequirements kitRequirements = kit.getRequirements();
if(!giveKitInstructions.isIgnoreRequirements() && kitRequirements != null && giveKitInstructions.isRequirementsSatisfied()){
if(!giveKitInstructions.isIgnoreRequirements() && kitRequirements != null && giveKitInstructions.isRequirementsSatisfied()
&& !PlayerUtils.hasCostBypassPermission(player, kitName)){
//Check price and update balance
double price = kitRequirements.getPrice();
Economy economy = plugin.getDependencyManager().getVaultEconomy();
Expand Down Expand Up @@ -420,4 +422,16 @@ public boolean passPrice(double price,Player player){
return true;
}

public boolean passPrice(double price,Player player, String kitName){
if(price != 0){
Economy economy = plugin.getDependencyManager().getVaultEconomy();
if(economy != null){
if(economy.getBalance(player) < price && !PlayerUtils.hasCostBypassPermission(player, kitName)){
return false;
}
}
}
return true;
}

}
4 changes: 4 additions & 0 deletions src/main/java/pk/ajneb97/utils/PlayerUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ public static boolean hasOneTimeBypassPermission(CommandSender sender){
return sender.hasPermission("playerkits.bypass.onetime");
}

public static boolean hasCostBypassPermission(CommandSender sender, String kitName){
return sender.hasPermission("playerkits.bypass.cost." + kitName);
}

public static boolean passCondition(Player player,String condition) {
String[] sep = condition.split(" ");
String variable = sep[0];
Expand Down