Sign shop: Random stuff!

This commit is contained in:
AppleDash 2017-01-15 00:47:49 -05:00
parent 2ccd25cce4
commit 8627f07163
4 changed files with 35 additions and 7 deletions

View File

@ -40,6 +40,9 @@ public class SaneEconomySignShop extends JavaPlugin {
saveDefaultConfig();
signShopManager.loadSignShops();
getServer().getScheduler().scheduleSyncRepeatingTask(this, limitManager::incrementLimitsHourly, 0, 20 * 60 * 60);
getServer().getPluginManager().registerEvents(new SignChangeListener(this), this);
getServer().getPluginManager().registerEvents(new InteractListener(this), this);
getServer().getPluginManager().registerEvents(new BreakListener(this), this);

View File

@ -53,7 +53,7 @@ public class SignChangeListener implements Listener {
MessageUtils.sendMessage(evt.getPlayer(), "Item: {1} x {2}", signShop.getQuantity(), signShop.getItemStack());
if (signShop.canBuy()) { // The player be buying from the shop, not the other way around.
MessageUtils.sendMessage(evt.getPlayer(), "Will sell to players for {!}.",
MessageUtils.sendMessage(evt.getPlayer(), "Will sell to players for {1}.",
plugin.getSaneEconomy().getEconomyManager().getCurrency().formatAmount(signShop.getBuyPrice())
);
}

View File

@ -8,14 +8,14 @@ import java.util.function.Supplier;
* Blackjack is still best pony.
*/
public class DefaultHashMap<K, V> extends HashMap<K, V> {
private final Supplier<V> defaultSupplier;
private final KeyBasedSupplier<K, V> defaultSupplier;
public DefaultHashMap(Supplier<V> defaultSupplier) {
if (defaultSupplier == null) {
throw new NullPointerException("defaultSupplier is null");
}
this((k) -> defaultSupplier.get());
}
this.defaultSupplier = defaultSupplier;
public DefaultHashMap(KeyBasedSupplier<K, V> supplier) {
this.defaultSupplier = supplier;
}
@Override
@ -23,10 +23,14 @@ public class DefaultHashMap<K, V> extends HashMap<K, V> {
V v = super.get(k);
if (v == null) {
v = defaultSupplier.get();
v = defaultSupplier.get((K)k);
this.put((K) k, v);
}
return v;
}
public interface KeyBasedSupplier<K, V> {
V get(K k);
}
}

View File

@ -2,10 +2,13 @@ package org.appledash.saneeconomysignshop.util;
import org.appledash.saneeconomysignshop.signshop.ShopTransaction;
import org.appledash.saneeconomysignshop.signshop.ShopTransaction.TransactionDirection;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
/**
@ -58,4 +61,22 @@ public class LimitManager {
});
}
public void loadLimits(ConfigurationSection config) {
for (Map<?, ?> map : config.getMapList("")) {
String itemName = String.valueOf(map.get("item"));
int sellLimit = Integer.valueOf(String.valueOf(map.get("buyLimit")));
int hourlyGain = Integer.valueOf(String.valueOf(map.get("gain")));
Optional<ItemDatabase.Pair<Integer, Short>> pair = ItemDatabase.getIDAndDamageForName(itemName);
if (!pair.isPresent()) {
continue;
}
ItemInfo itemInfo = new ItemInfo(new ItemStack(pair.get().getLeft(), pair.get().getRight()));
itemLimits.get(TransactionDirection.SELL).put(itemInfo, new ItemLimits(sellLimit, hourlyGain));
}
}
}