From 3c5983651fa27e45b2d462080c054b71632119bb Mon Sep 17 00:00:00 2001 From: Niels Vergucht Date: Sat, 29 Dec 2018 21:32:18 +0100 Subject: [PATCH] Fixed bulk shop bug + added customization to infinite use charge --- pom.xml | 2 +- .../com/songoda/epicbuckets/file/ConfigManager.java | 13 +++++++++---- .../listener/GenbucketPlaceListener.java | 9 +++++---- .../com/songoda/epicbuckets/shop/ShopManager.java | 2 +- src/main/resources/config.yml | 11 ++++++++--- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index 9d634ce..603dbde 100644 --- a/pom.xml +++ b/pom.xml @@ -122,7 +122,7 @@ http://nexus.hc.to/content/repositories/pub_releases - 3_aikar + 33_aikar https://repo.aikar.co/content/groups/aikar/ diff --git a/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java b/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java index c8b6b0b..f556f4c 100644 --- a/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java +++ b/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java @@ -51,7 +51,7 @@ public class ConfigManager { private boolean infiniteUse; private boolean chargeInfiniteUse; - private int infiniteUseCost; + private HashMap infiniteUseCost; private int genbucketDelay; private CooldownMap cooldownMap; @@ -92,6 +92,7 @@ public class ConfigManager { ignoredMaterials = new ArrayList<>(); psuedoMaterials = new ArrayList<>(); genbucketGroups = new LinkedHashMap<>(); + infiniteUseCost = new HashMap<>(); loadValidFaces(); @@ -116,7 +117,11 @@ public class ConfigManager { fillInventory = epicBuckets.getConfig().getBoolean(menuItemsPath + ".fill"); epicBuckets.getConfig().getConfigurationSection("CUSTOM-ACTIVE-GEN-PER-PLAY").getKeys(false).forEach(s -> genbucketGroups.put(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[1], Integer.parseInt(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[0]))); chargeInfiniteUse = epicBuckets.getConfig().getBoolean("CHARGE-FOR-INFINITE-USE"); - infiniteUseCost = epicBuckets.getConfig().getInt("COST-FOR-INFINITE-USE"); + + epicBuckets.getConfig().getConfigurationSection("COST-FOR-INFINITE-USE").getKeys(false) + .forEach(cost -> this.infiniteUseCost.put(GenbucketType.valueOf(cost), + epicBuckets.getConfig().getDouble("COST-FOR-INFINITE-USE." + cost))); + genbucketDelay = epicBuckets.getConfig().getInt("GENBUCKET-DELAY"); if (getGenbucketDelay() > 0) { @@ -308,8 +313,8 @@ public class ConfigManager { return chargeInfiniteUse; } - public int getInfiniteUseCost() { - return infiniteUseCost; + public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType) { + return infiniteUseCost.get(genbucketType); } public int getGenbucketDelay() { diff --git a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java b/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java index cb58e3a..b726927 100644 --- a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java +++ b/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java @@ -89,18 +89,19 @@ public class GenbucketPlaceListener implements Listener { if (e.getItem().getAmount() > 1) { e.getItem().setAmount(e.getItem().getAmount() - 1); } else { - System.out.println("hi"); e.getPlayer().getInventory().remove(e.getItem()); } } if (EpicBuckets.getInstance().getConfigManager().isInfiniteUse() && EpicBuckets.getInstance().getConfigManager().isChargeInfiniteUse()) { - if (EpicBuckets.getInstance().getEcon().getBalance(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId())) < EpicBuckets.getInstance().getConfigManager().getInfiniteUseCost()) { + if (EpicBuckets.getInstance().getEcon().getBalance(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId())) < EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType())) { e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.notenough")); return; } - EpicBuckets.getInstance().getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId()), EpicBuckets.getInstance().getConfigManager().getInfiniteUseCost()); - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.charge").replace("%charge%", EpicBuckets.getInstance().getConfigManager().getInfiniteUseCost() + "")); + if (EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType()) > 0) { + EpicBuckets.getInstance().getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId()), EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType())); + e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.charge").replace("%charge%", EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType()) + "")); + } } EpicBuckets.getInstance().getGenbucketManager().registerGenbucketForPlayer(e.getPlayer(), genbucket); diff --git a/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java b/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java index da20ada..64640dd 100644 --- a/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java +++ b/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java @@ -116,7 +116,7 @@ public class ShopManager { } public void buyFromShop(Player buyer, SubShop s, int amount) { - epicBuckets.getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(buyer.getUniqueId()), s.getPrice()); + epicBuckets.getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(buyer.getUniqueId()), s.getPrice() * amount); giveGenbucketToPlayer(buyer, s, amount); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6477737..2a5f686 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -16,13 +16,18 @@ GRIEFPREVENTION-SUPPORT: false # GriefPrevention is needed ENABLE-GENS-IN-WILDERNESS: true -ENCHANT: false # Enchant genbuckets in all guis - CLOSE-GUI-AFTER-PURCHASE: false # Close the inventory after purchase INFINITE-USE: false # If enabled, you won't lose a genbucket when you place it down + CHARGE-FOR-INFINITE-USE: false # This requires infinite use to be enabled and will charge the player when placing a genbucket -COST-FOR-INFINITE-USE: 400 # Money charged for placing a genbucket when the above is enabled + +# Money charged for placing a genbucket when the above is enabled, put 0 if you want no charge +COST-FOR-INFINITE-USE: + HORIZONTAL: 0 + VERTICAL: 0 + PSUEDO: 0 + INFUSED: 0 GENBUCKET-DELAY: 10 # Ticks delay between genbucket placements, 20 ticks = 1 second, set to 0 for no delay