package com.walrusone.skywars.controllers; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.walrusone.skywars.SkyWarsReloaded; import com.walrusone.skywars.utilities.ItemUtils; import com.walrusone.skywars.utilities.ShopItem; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; import java.io.File; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Map; public class ShopController { private final Map<String, ShopItem> shopMap = Maps.newHashMap(); private final Map<String, ShopItem> specShopMap = Maps.newHashMap(); public ShopController() { load(); } public void load() { shopMap.clear(); File shopFile = new File(SkyWarsReloaded.get().getDataFolder(), "shop.yml"); if (!shopFile.exists()) { SkyWarsReloaded.get().saveResource("shop.yml", false); } if (shopFile.exists()) { FileConfiguration storage = YamlConfiguration.loadConfiguration(shopFile); if (storage.contains("items")) { for (String item : storage.getStringList("items")) { List<String> itemData = new LinkedList<String>(Arrays.asList(item.split(" "))); int cost = Integer.parseInt(itemData.get(0)); itemData.remove(itemData.get(0)); ItemStack itemStack = ItemUtils.parseItem(itemData); if (itemStack != null) { shopMap.put(ChatColor.stripColor(SkyWarsReloaded.getNMS().getName(itemStack)), new ShopItem(itemStack, cost)); } } } } specShopMap.clear(); File specShopFile = new File(SkyWarsReloaded.get().getDataFolder(), "spectateshop.yml"); if (!specShopFile.exists()) { SkyWarsReloaded.get().saveResource("spectateshop.yml", false); } if (specShopFile.exists()) { FileConfiguration storage = YamlConfiguration.loadConfiguration(specShopFile); if (storage.contains("items")) { for (String item : storage.getStringList("items")) { List<String> itemData = new LinkedList<String>(Arrays.asList(item.split(" "))); int cost = Integer.parseInt(itemData.get(0)); itemData.remove(itemData.get(0)); ItemStack itemStack = ItemUtils.parseItem(itemData); if (itemStack != null) { specShopMap.put(SkyWarsReloaded.getNMS().getName(itemStack), new ShopItem(itemStack, cost)); } } } } } public ShopItem getByName(String name) { return shopMap.get(name); } public ShopItem getBySpecName(String name) { return specShopMap.get(name); } public List<ShopItem> getShopItems() { return Lists.newArrayList(shopMap.values()); } public List<ShopItem> getSpecShopItems() { return Lists.newArrayList(specShopMap.values()); } }