package de.iani.treasurechest;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.UUID;
public class TreasureChestData {
private HashMap<UUID, TreasureChestItem> activeItems;
private HashMap<UUID, PlayerTreasureChestContent> loadedChests;
private HashMap<UUID, ListedItemsData> listedItems;
private TreasureChest plugin;
private File chestContentFolder;
public TreasureChestData(TreasureChest plugin) {
activeItems = new HashMap<>();
loadedChests = new HashMap<>();
listedItems = new HashMap<>();
this.plugin = plugin;
chestContentFolder = new File(this.plugin.getDataFolder(), "content");
chestContentFolder.mkdirs();
}
public TreasureChestItem getActiveItem(UUID playerUUID) {
return activeItems.get(playerUUID);
}
public TreasureChestItem setActiveItem(UUID playerUUID, TreasureChestItem item) {
if (item == null) {
return removeActiveItem(playerUUID);
}
return activeItems.put(playerUUID, item);
}
public TreasureChestItem removeActiveItem(UUID playerUUID) {
return activeItems.remove(playerUUID);
}
public PlayerTreasureChestContent getChestContent(UUID playerUUID) {
return loadedChests.get(playerUUID);
}
public void loadTreasureChest(UUID owner) {
loadedChests.put(owner, new PlayerTreasureChestContent(owner, plugin));
}
public void unloadTreasureChest(UUID owner) {
loadedChests.remove(owner);
}
public ListedItemsData getListedItems(UUID owner) {
return listedItems.get(owner);
}
public void setListedItems(UUID owner, ListedItemsData data) {
listedItems.put(owner, data);
}
public void removeListedItems(UUID owner) {
listedItems.remove(owner);
}
public void doGC() {
Iterator<PlayerTreasureChestContent> it = loadedChests.values().iterator();
while (it.hasNext()) {
PlayerTreasureChestContent c = it.next();
if (plugin.getServer().getPlayer(c.getOwner()) == null) {
it.remove();
}
}
}
}