diff --git a/pom.xml b/pom.xml index 603dbde..9d634ce 100644 --- a/pom.xml +++ b/pom.xml @@ -122,7 +122,7 @@ http://nexus.hc.to/content/repositories/pub_releases - 33_aikar + 3_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 f556f4c..4ffb428 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 HashMap infiniteUseCost; + private HashMap> infiniteUseCost; private int genbucketDelay; private CooldownMap cooldownMap; @@ -115,15 +115,21 @@ public class ConfigManager { inventorySize = epicBuckets.getConfig().getInt(menuItemsPath + ".size"); inventoryName = epicBuckets.getConfig().getString(menuItemsPath + ".inventory-name"); 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"); + 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]))); + 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))); + .forEach(bucket -> { + HashMap chargingCostsPerItem = new HashMap<>(); + epicBuckets.getConfig().getConfigurationSection("COST-FOR-INFINITE-USE." + bucket).getKeys(false) + .forEach(item -> chargingCostsPerItem.put(XMaterial.valueOf(item).parseItem(), epicBuckets.getConfig().getDouble("COST-FOR-INFINITE-USE." + bucket + "." + item))); + infiniteUseCost.put(GenbucketType.valueOf(bucket), chargingCostsPerItem); + }); genbucketDelay = epicBuckets.getConfig().getInt("GENBUCKET-DELAY"); - if (getGenbucketDelay() > 0) { cooldownMap = CooldownMap.create(Cooldown.of(getGenbucketDelay() / 20, TimeUnit.SECONDS)); } else { @@ -313,8 +319,8 @@ public class ConfigManager { return chargeInfiniteUse; } - public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType) { - return infiniteUseCost.get(genbucketType); + public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType, ItemStack item) { + return infiniteUseCost.get(genbucketType).get(item); } public int getGenbucketDelay() { diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java b/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java index 94c0552..edcbf9b 100644 --- a/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java +++ b/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java @@ -155,7 +155,7 @@ public abstract class Genbucket { return true; } - protected ItemStack getGenItem() { + public ItemStack getGenItem() { return subShop.getGenItem(); } diff --git a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java b/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java index b726927..5e329e9 100644 --- a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java +++ b/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java @@ -94,13 +94,13 @@ public class GenbucketPlaceListener implements Listener { } if (EpicBuckets.getInstance().getConfigManager().isInfiniteUse() && EpicBuckets.getInstance().getConfigManager().isChargeInfiniteUse()) { - if (EpicBuckets.getInstance().getEcon().getBalance(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId())) < EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType())) { + if (EpicBuckets.getInstance().getEcon().getBalance(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId())) < EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem())) { e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.notenough")); return; } - 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()) + "")); + if (EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem()) > 0) { + EpicBuckets.getInstance().getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId()), EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem())); + e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.charge").replace("%charge%", EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem()) + "")); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 2a5f686..68d8d7b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -23,11 +23,24 @@ INFINITE-USE: false # If enabled, you won't lose a genbucket when you place it d CHARGE-FOR-INFINITE-USE: false # This requires infinite use to be enabled and will charge the player when placing a genbucket # Money charged for placing a genbucket when the above is enabled, put 0 if you want no charge +# Use 1.13 material names, they will be auto converted to whatever your server version is COST-FOR-INFINITE-USE: - HORIZONTAL: 0 - VERTICAL: 0 - PSUEDO: 0 - INFUSED: 0 + HORIZONTAL: + COBBLESTONE: 0 + SAND: 0 + OBSIDIAN: 0 + VERTICAL: + COBBLESTONE: 0 + SAND: 0 + OBSIDIAN: 0 + PSUEDO: + COBBLESTONE: 0 + SAND: 0 + OBSIDIAN: 0 + INFUSED: + COBBLESTONE: 0 + OBSIDIAN: 0 + NETHERRACK: 0 GENBUCKET-DELAY: 10 # Ticks delay between genbucket placements, 20 ticks = 1 second, set to 0 for no delay