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