diff --git a/pom.xml b/pom.xml
index 77cd1b9..927449b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
pk.ajneb97
PlayerKits2
- 1.0-SNAPSHOT
+ 1.0.3-SNAPSHOT
21
diff --git a/src/main/java/pk/ajneb97/managers/KitsManager.java b/src/main/java/pk/ajneb97/managers/KitsManager.java
index aff3604..ce20215 100644
--- a/src/main/java/pk/ajneb97/managers/KitsManager.java
+++ b/src/main/java/pk/ajneb97/managers/KitsManager.java
@@ -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
@@ -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"));
}
@@ -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();
@@ -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;
+ }
+
}
diff --git a/src/main/java/pk/ajneb97/utils/PlayerUtils.java b/src/main/java/pk/ajneb97/utils/PlayerUtils.java
index 549fb78..f42aa1c 100644
--- a/src/main/java/pk/ajneb97/utils/PlayerUtils.java
+++ b/src/main/java/pk/ajneb97/utils/PlayerUtils.java
@@ -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];