Make sell limits work, probably.

This commit is contained in:
AppleDash 2017-01-18 04:20:05 -05:00
parent 642ac49e4a
commit 4c57189e07
4 changed files with 458 additions and 450 deletions

View File

@ -43,7 +43,7 @@ public class SaneEconomySignShop extends JavaPlugin {
limitManager.loadLimits(YamlConfiguration.loadConfiguration(getClass().getResourceAsStream("/limits.yml"))); // Always load from JAR
signShopManager.loadSignShops();
getServer().getScheduler().scheduleSyncRepeatingTask(this, limitManager::incrementLimitsHourly, 0, 20 * 60 * 60);
getServer().getScheduler().scheduleSyncRepeatingTask(this, limitManager::incrementLimitsHourly, 0, 20 * 60);
getServer().getPluginManager().registerEvents(new SignChangeListener(this), this);
getServer().getPluginManager().registerEvents(new InteractListener(this), this);

View File

@ -1,6 +1,7 @@
package org.appledash.saneeconomysignshop.util;
import com.google.common.collect.ImmutableMap;
import org.bukkit.Material;
import java.io.BufferedReader;
import java.io.IOException;
@ -30,7 +31,7 @@ public class ItemDatabase {
int id = Integer.valueOf(split[1]);
short damage = Short.valueOf(split[2]);
itemMap.put(name, Pair.of(id, damage));
itemMap.put(name.toLowerCase(), Pair.of(id, damage));
}
itemMap = ImmutableMap.copyOf(itemMap);
@ -40,7 +41,10 @@ public class ItemDatabase {
}
public static Optional<Pair<Integer, Short>> getIDAndDamageForName(String name) {
return Optional.ofNullable(itemMap.get(name));
if (Material.getMaterial(name) != null) {
return Optional.of(Pair.of(Material.getMaterial(name).getId(), (short) 0));
}
return Optional.ofNullable(itemMap.get(name.toLowerCase()));
}
public static class Pair<K, V> {

View File

@ -10,12 +10,14 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.logging.Logger;
/**
* Created by appledash on 1/1/17.
* Blackjack is still best pony.
*/
public class LimitManager {
private static final Logger LOGGER = Logger.getLogger("LimitManager");
// private final Map<ItemInfo, ItemLimits> buyItemLimits = new DefaultHashMap<ItemInfo, ItemLimits>(() -> ItemLimits.DEFAULT);
private final Map<ItemInfo, ItemLimits> sellItemLimits = new DefaultHashMap<>(() -> ItemLimits.DEFAULT);
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
@ -48,7 +50,7 @@ public class LimitManager {
return;
}
throw new IllegalArgumentException("Don't know how to set limits for that TransactionDorection!");
throw new IllegalArgumentException("Don't know how to set limits for that TransactionDirection!");
}
public boolean shouldAllowTransaction(ShopTransaction transaction) {
@ -74,14 +76,15 @@ public class LimitManager {
}
public void loadLimits(ConfigurationSection config) {
for (Map<?, ?> map : config.getMapList("")) {
for (Map<?, ?> map : config.getMapList("sell")) {
String itemName = String.valueOf(map.get("item"));
int sellLimit = Integer.valueOf(String.valueOf(map.get("buyLimit")));
int sellLimit = Integer.valueOf(String.valueOf(map.get("limit")));
int hourlyGain = Integer.valueOf(String.valueOf(map.get("gain")));
Optional<ItemDatabase.Pair<Integer, Short>> pair = ItemDatabase.getIDAndDamageForName(itemName);
if (!pair.isPresent()) {
LOGGER.warning(String.format("You tried to load the item '%s' in limits.yml, but I have no idea what that is.", map.get("item")));
continue;
}

View File

@ -1,448 +1,449 @@
- item: APPLE
limit: 1600
gain: 160
- item: CARROT
limit: 3200
gain: 320
- item: MELON
limit: 6400
gain: 640
- item: POTATO
limit: 3200
gain: 320
- item: BEETROOT
limit: 3200
gain: 320
- item: PUMPKIN
limit: 3200
gain: 320
- item: MELON_BLOCK
limit: 1280
gain: 128
- item: BROWN_MUSHROOM
limit: 1280
gain: 128
- item: RED_MUSHROOM
limit: 1280
gain: 128
- item: BREAD
limit: 1280
gain: 128
- item: FISH:0
limit: 1600
gain: 160
- item: FISH:1
limit: 1600
gain: 160
- item: FISH:2
limit: 1600
gain: 160
- item: FISH:3
limit: 1600
gain: 160
- item: RABBIT
limit: 1280
gain: 128
- item: BEEF
limit: 1280
gain: 128
- item: MUTTON
limit: 1280
gain: 128
- item: PORKCHOP
limit: 1280
gain: 128
- item: CHICKEN
limit: 1280
gain: 128
- item: DYE:3
limit: 1600
gain: 160
- item: EGG
limit: 480
gain: 48
- item: WHEAT
limit: 3200
gain: 320
- item: SUGAR
limit: 1600
gain: 160
sell:
- item: APPLE
limit: 1600
gain: 160
- item: CARROT
limit: 3200
gain: 320
- item: MELON
limit: 6400
gain: 640
- item: POTATO
limit: 3200
gain: 320
- item: BEETROOT
limit: 3200
gain: 320
- item: PUMPKIN
limit: 3200
gain: 320
- item: MELON_BLOCK
limit: 1280
gain: 128
- item: BROWN_MUSHROOM
limit: 1280
gain: 128
- item: RED_MUSHROOM
limit: 1280
gain: 128
- item: BREAD
limit: 1280
gain: 128
- item: FISH:0
limit: 1600
gain: 160
- item: FISH:1
limit: 1600
gain: 160
- item: FISH:2
limit: 1600
gain: 160
- item: FISH:3
limit: 1600
gain: 160
- item: RABBIT
limit: 1280
gain: 128
- item: BEEF
limit: 1280
gain: 128
- item: MUTTON
limit: 1280
gain: 128
- item: PORKCHOP
limit: 1280
gain: 128
- item: CHICKEN
limit: 1280
gain: 128
- item: DYE:3
limit: 1600
gain: 160
- item: EGG
limit: 480
gain: 48
- item: WHEAT
limit: 3200
gain: 320
- item: SUGAR
limit: 1600
gain: 160
- item: SAPLING:0
limit: 1600
gain: 160
- item: SAPLING:1
limit: 1600
gain: 160
- item: SAPLING:2
limit: 1600
gain: 160
- item: SAPLING:3
limit: 1600
gain: 160
- item: SAPLING:4
limit: 1600
gain: 160
- item: SAPLING:5
limit: 1600
gain: 160
- item: DEADBUSH
limit: 1600
gain: 160
- item: LEAVES:0
limit: 1280
gain: 128
- item: LEAVES:1
limit: 1280
gain: 128
- item: LEAVES:2
limit: 1280
gain: 128
- item: LEAVES:3
limit: 1280
gain: 128
- item: VINE
limit: 1280
gain: 128
- item: TALLGRASS:1
limit: 1280
gain: 128
- item: TALLGRASS:2
limit: 1280
gain: 128
- item: RED_FLOWER:4
limit: 1280
gain: 128
- item: RED_FLOWER:5
limit: 1280
gain: 128
- item: RED_FLOWER:6
limit: 1280
gain: 128
- item: RED_FLOWER:7
limit: 1280
gain: 128
- item: RED_FLOWER:3
limit: 1280
gain: 128
- item: RED_FLOWER:2
limit: 1280
gain: 128
- item: RED_FLOWER:1
limit: 1280
gain: 128
- item: RED_FLOWER:8
limit: 1280
gain: 128
- item: RED_FLOWER:0
limit: 1280
gain: 128
- item: YELLOW_FLOWER
limit: 1280
gain: 128
- item: DOUBLE_PLANT:1
limit: 1280
gain: 128
- item: DOUBLE_PLANT:0
limit: 1280
gain: 128
- item: DOUBLE_PLANT:5
limit: 1280
gain: 128
- item: DOUBLE_PLANT:4
limit: 1280
gain: 128
- item: WATERLILY
limit: 1280
gain: 128
- item: REEDS
limit: 1280
gain: 128
- item: CACTUS
limit: 1600
gain: 160
- item: WHEAT_SEEDS
limit: 1600
gain: 160
- item: PUMPKIN_SEEDS
limit: 1600
gain: 160
- item: MELON_SEEDS
limit: 1600
gain: 160
- item: BEETROOT_SEEDS
limit: 1600
gain: 160
- item: SAPLING:0
limit: 1600
gain: 160
- item: SAPLING:1
limit: 1600
gain: 160
- item: SAPLING:2
limit: 1600
gain: 160
- item: SAPLING:3
limit: 1600
gain: 160
- item: SAPLING:4
limit: 1600
gain: 160
- item: SAPLING:5
limit: 1600
gain: 160
- item: DEADBUSH
limit: 1600
gain: 160
- item: LEAVES:0
limit: 1280
gain: 128
- item: LEAVES:1
limit: 1280
gain: 128
- item: LEAVES:2
limit: 1280
gain: 128
- item: LEAVES:3
limit: 1280
gain: 128
- item: VINE
limit: 1280
gain: 128
- item: TALLGRASS:1
limit: 1280
gain: 128
- item: TALLGRASS:2
limit: 1280
gain: 128
- item: RED_FLOWER:4
limit: 1280
gain: 128
- item: RED_FLOWER:5
limit: 1280
gain: 128
- item: RED_FLOWER:6
limit: 1280
gain: 128
- item: RED_FLOWER:7
limit: 1280
gain: 128
- item: RED_FLOWER:3
limit: 1280
gain: 128
- item: RED_FLOWER:2
limit: 1280
gain: 128
- item: RED_FLOWER:1
limit: 1280
gain: 128
- item: RED_FLOWER:8
limit: 1280
gain: 128
- item: RED_FLOWER:0
limit: 1280
gain: 128
- item: YELLOW_FLOWER
limit: 1280
gain: 128
- item: DOUBLE_PLANT:1
limit: 1280
gain: 128
- item: DOUBLE_PLANT:0
limit: 1280
gain: 128
- item: DOUBLE_PLANT:5
limit: 1280
gain: 128
- item: DOUBLE_PLANT:4
limit: 1280
gain: 128
- item: WATERLILY
limit: 1280
gain: 128
- item: REEDS
limit: 1280
gain: 128
- item: CACTUS
limit: 1600
gain: 160
- item: WHEAT_SEEDS
limit: 1600
gain: 160
- item: PUMPKIN_SEEDS
limit: 1600
gain: 160
- item: MELON_SEEDS
limit: 1600
gain: 160
- item: BEETROOT_SEEDS
limit: 1600
gain: 160
- item: GRASS
limit: 3200
gain: 320
- item: DIRT:0
limit: 4800
gain: 480
- item: DIRT:1
limit: 3200
gain: 320
- item: DIRT:2
limit: 1600
gain: 160
- item: MYCELIUM
limit: 1600
gain: 160
- item: SAND:0
limit: 4800
gain: 480
- item: SAND:1
limit: 1600
gain: 160
- item: SANDSTONE
limit: 3200
gain: 320
- item: RED_SANDSTONE
limit: 1280
gain: 128
- item: STONE:0
limit: 6400
gain: 640
- item: COBBLESTONE
limit: 6400
gain: 640
- item: STONE:1
limit: 1600
gain: 160
- item: STONE:3
limit: 1600
gain: 160
- item: STONE:5
limit: 1600
gain: 160
- item: GRAVEL
limit: 1600
gain: 160
- item: CLAY
limit: 1600
gain: 160
- item: HARDENED_CLAY
limit: 1600
gain: 160
- item: BRICK_BLOCK
limit: 1600
gain: 160
- item: LOG:0
limit: 1600
gain: 160
- item: LOG:1
limit: 1600
gain: 160
- item: LOG:2
limit: 1600
gain: 160
- item: LOG:3
limit: 1600
gain: 160
- item: LOG2:0
limit: 1600
gain: 160
- item: LOG2:1
limit: 1600
gain: 160
- item: GLASS
limit: 1600
gain: 160
- item: SNOW
limit: 1600
gain: 160
- item: PACKED_ICE
limit: 640
gain: 64
- item: OBSIDIAN
limit: 1280
gain: 128
- item: NETHER_BRICK
limit: 1600
gain: 160
- item: QUARTZ_BLOCK
limit: 1280
gain: 128
- item: SOUL_SAND
limit: 1600
gain: 160
- item: GLOWSTONE
limit: 1600
gain: 160
- item: SEA_LANTERN
limit: 1600
gain: 160
- item: PRISMARINE:0
limit: 1600
gain: 160
- item: PRISMARINE:1
limit: 1600
gain: 160
- item: PRISMARINE:2
limit: 1600
gain: 160
- item: GRASS
limit: 3200
gain: 320
- item: DIRT:0
limit: 4800
gain: 480
- item: DIRT:1
limit: 3200
gain: 320
- item: DIRT:2
limit: 1600
gain: 160
- item: MYCELIUM
limit: 1600
gain: 160
- item: SAND:0
limit: 4800
gain: 480
- item: SAND:1
limit: 1600
gain: 160
- item: SANDSTONE
limit: 3200
gain: 320
- item: RED_SANDSTONE
limit: 1280
gain: 128
- item: STONE:0
limit: 6400
gain: 640
- item: COBBLESTONE
limit: 6400
gain: 640
- item: STONE:1
limit: 1600
gain: 160
- item: STONE:3
limit: 1600
gain: 160
- item: STONE:5
limit: 1600
gain: 160
- item: GRAVEL
limit: 1600
gain: 160
- item: CLAY
limit: 1600
gain: 160
- item: HARDENED_CLAY
limit: 1600
gain: 160
- item: BRICK_BLOCK
limit: 1600
gain: 160
- item: LOG:0
limit: 1600
gain: 160
- item: LOG:1
limit: 1600
gain: 160
- item: LOG:2
limit: 1600
gain: 160
- item: LOG:3
limit: 1600
gain: 160
- item: LOG2:0
limit: 1600
gain: 160
- item: LOG2:1
limit: 1600
gain: 160
- item: GLASS
limit: 1600
gain: 160
- item: SNOW
limit: 1600
gain: 160
- item: PACKED_ICE
limit: 640
gain: 64
- item: OBSIDIAN
limit: 1280
gain: 128
- item: NETHER_BRICK
limit: 1600
gain: 160
- item: QUARTZ_BLOCK
limit: 1280
gain: 128
- item: SOUL_SAND
limit: 1600
gain: 160
- item: GLOWSTONE
limit: 1600
gain: 160
- item: SEA_LANTERN
limit: 1600
gain: 160
- item: PRISMARINE:0
limit: 1600
gain: 160
- item: PRISMARINE:1
limit: 1600
gain: 160
- item: PRISMARINE:2
limit: 1600
gain: 160
- item: COAL
limit: 6400
gain: 320
- item: IRON_INGOT
limit: 2560
gain: 128
- item: GOLD_INGOT
limit: 1280
gain: 64
- item: DIAMOND
limit: 640
gain: 32
- item: REDSTONE
limit: 3200
gain: 160
- item: DYE:4
limit: 3200
gain: 160
- item: EMERALD
limit: 1280
gain: 64
- item: QUARTZ
limit: 1600
gain: 100
- item: PAPER
limit: 1600
gain: 100
- item: FEATHER
limit: 1600
gain: 100
- item: LEATHER
limit: 1600
gain: 100
- item: RABBIT_FOOT
limit: 1600
gain: 100
- item: FLINT
limit: 1600
gain: 100
- item: ROTTEN_FLESH
limit: 2560
gain: 128
- item: BONE
limit: 2560
gain: 128
- item: STRING
limit: 2560
gain: 128
- item: SPIDER_EYE
limit: 2560
gain: 128
- item: GUNPOWDER
limit: 2560
gain: 125
- item: SLIME_BALL
limit: 2560
gain: 128
- item: ENDER_PEARL
limit: 1600
gain: 80
- item: BLAZE_ROD
limit: 1600
gain: 80
- item: GHAST_TEAR
limit: 640
gain: 32
- item: COAL
limit: 6400
gain: 320
- item: IRON_INGOT
limit: 2560
gain: 128
- item: GOLD_INGOT
limit: 1280
gain: 64
- item: DIAMOND
limit: 640
gain: 32
- item: REDSTONE
limit: 3200
gain: 160
- item: DYE:4
limit: 3200
gain: 160
- item: EMERALD
limit: 1280
gain: 64
- item: QUARTZ
limit: 1600
gain: 100
- item: PAPER
limit: 1600
gain: 100
- item: FEATHER
limit: 1600
gain: 100
- item: LEATHER
limit: 1600
gain: 100
- item: RABBIT_FOOT
limit: 1600
gain: 100
- item: FLINT
limit: 1600
gain: 100
- item: ROTTEN_FLESH
limit: 2560
gain: 128
- item: BONE
limit: 2560
gain: 128
- item: STRING
limit: 2560
gain: 128
- item: SPIDER_EYE
limit: 2560
gain: 128
- item: GUNPOWDER
limit: 2560
gain: 125
- item: SLIME_BALL
limit: 2560
gain: 128
- item: ENDER_PEARL
limit: 1600
gain: 80
- item: BLAZE_ROD
limit: 1600
gain: 80
- item: GHAST_TEAR
limit: 640
gain: 32
- item: WOOL:14
limit: 1600
gain: 80
- item: WOOL:1
limit: 1600
gain: 80
- item: WOOL:4
limit: 1600
gain: 80
- item: WOOL:5
limit: 1600
gain: 80
- item: WOOL:13
limit: 1600
gain: 80
- item: WOOL:9
limit: 1600
gain: 80
- item: WOOL:3
limit: 1600
gain: 80
- item: WOOL:11
limit: 1600
gain: 80
- item: WOOL:10
limit: 1600
gain: 80
- item: WOOL:2
limit: 1600
gain: 80
- item: WOOL:6
limit: 1600
gain: 80
- item: WOOL:12
limit: 1600
gain: 80
- item: WOOL:0
limit: 1600
gain: 80
- item: WOOL:8
limit: 1600
gain: 80
- item: WOOL:7
limit: 1600
gain: 80
- item: WOOL:15
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:14
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:1
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:4
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:5
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:13
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:9
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:3
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:11
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:10
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:2
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:6
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:12
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:0
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY8:
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:7
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:15
limit: 1600
gain: 80
- item: WOOL:14
limit: 1600
gain: 80
- item: WOOL:1
limit: 1600
gain: 80
- item: WOOL:4
limit: 1600
gain: 80
- item: WOOL:5
limit: 1600
gain: 80
- item: WOOL:13
limit: 1600
gain: 80
- item: WOOL:9
limit: 1600
gain: 80
- item: WOOL:3
limit: 1600
gain: 80
- item: WOOL:11
limit: 1600
gain: 80
- item: WOOL:10
limit: 1600
gain: 80
- item: WOOL:2
limit: 1600
gain: 80
- item: WOOL:6
limit: 1600
gain: 80
- item: WOOL:12
limit: 1600
gain: 80
- item: WOOL:0
limit: 1600
gain: 80
- item: WOOL:8
limit: 1600
gain: 80
- item: WOOL:7
limit: 1600
gain: 80
- item: WOOL:15
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:14
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:1
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:4
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:5
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:13
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:9
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:3
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:11
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:10
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:2
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:6
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:12
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:0
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:8
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:7
limit: 1600
gain: 80
- item: STAINED_HARDENED_CLAY:15
limit: 1600
gain: 80