Added even more customisation to infinite use charge

This commit is contained in:
Niels Vergucht 2018-12-30 15:27:37 +01:00
parent 3c5983651f
commit 5c5ed84b65
5 changed files with 36 additions and 17 deletions

View File

@ -122,7 +122,7 @@
<url>http://nexus.hc.to/content/repositories/pub_releases</url> <url>http://nexus.hc.to/content/repositories/pub_releases</url>
</repository> </repository>
<repository> <repository>
<id>33_aikar</id> <id>3_aikar</id>
<url>https://repo.aikar.co/content/groups/aikar/</url> <url>https://repo.aikar.co/content/groups/aikar/</url>
</repository> </repository>
<repository> <repository>

View File

@ -51,7 +51,7 @@ public class ConfigManager {
private boolean infiniteUse; private boolean infiniteUse;
private boolean chargeInfiniteUse; private boolean chargeInfiniteUse;
private HashMap<GenbucketType, Double> infiniteUseCost; private HashMap<GenbucketType, HashMap<ItemStack, Double>> infiniteUseCost;
private int genbucketDelay; private int genbucketDelay;
private CooldownMap<Player> cooldownMap; private CooldownMap<Player> cooldownMap;
@ -115,15 +115,21 @@ public class ConfigManager {
inventorySize = epicBuckets.getConfig().getInt(menuItemsPath + ".size"); inventorySize = epicBuckets.getConfig().getInt(menuItemsPath + ".size");
inventoryName = epicBuckets.getConfig().getString(menuItemsPath + ".inventory-name"); inventoryName = epicBuckets.getConfig().getString(menuItemsPath + ".inventory-name");
fillInventory = epicBuckets.getConfig().getBoolean(menuItemsPath + ".fill"); 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"); 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) epicBuckets.getConfig().getConfigurationSection("COST-FOR-INFINITE-USE").getKeys(false)
.forEach(cost -> this.infiniteUseCost.put(GenbucketType.valueOf(cost), .forEach(bucket -> {
epicBuckets.getConfig().getDouble("COST-FOR-INFINITE-USE." + cost))); HashMap<ItemStack, Double> 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"); genbucketDelay = epicBuckets.getConfig().getInt("GENBUCKET-DELAY");
if (getGenbucketDelay() > 0) { if (getGenbucketDelay() > 0) {
cooldownMap = CooldownMap.create(Cooldown.of(getGenbucketDelay() / 20, TimeUnit.SECONDS)); cooldownMap = CooldownMap.create(Cooldown.of(getGenbucketDelay() / 20, TimeUnit.SECONDS));
} else { } else {
@ -313,8 +319,8 @@ public class ConfigManager {
return chargeInfiniteUse; return chargeInfiniteUse;
} }
public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType) { public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType, ItemStack item) {
return infiniteUseCost.get(genbucketType); return infiniteUseCost.get(genbucketType).get(item);
} }
public int getGenbucketDelay() { public int getGenbucketDelay() {

View File

@ -155,7 +155,7 @@ public abstract class Genbucket {
return true; return true;
} }
protected ItemStack getGenItem() { public ItemStack getGenItem() {
return subShop.getGenItem(); return subShop.getGenItem();
} }

View File

@ -94,13 +94,13 @@ public class GenbucketPlaceListener implements Listener {
} }
if (EpicBuckets.getInstance().getConfigManager().isInfiniteUse() && EpicBuckets.getInstance().getConfigManager().isChargeInfiniteUse()) { 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")); e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.notenough"));
return; return;
} }
if (EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType()) > 0) { 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())); 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()) + "")); e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.charge").replace("%charge%", EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem()) + ""));
} }
} }

View File

@ -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 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 # 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: COST-FOR-INFINITE-USE:
HORIZONTAL: 0 HORIZONTAL:
VERTICAL: 0 COBBLESTONE: 0
PSUEDO: 0 SAND: 0
INFUSED: 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 GENBUCKET-DELAY: 10 # Ticks delay between genbucket placements, 20 ticks = 1 second, set to 0 for no delay