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];