package me.gtacraft.plugins.chests;
import com.google.common.collect.Lists;
import lombok.Getter;
import me.gtacraft.plugins.chests.listener.GTAChestsListener;
import me.gtacraft.plugins.chests.parser.DataTypes;
import me.gtacraft.plugins.chests.parser.ItemData;
import me.gtacraft.plugins.chests.util.Logger;
import me.vaqxine.VNPC.lib.RegionType;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.block.BlockState;
import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.HashMap;
import java.util.List;
/**
* Created by Connor on 7/3/14. Designed for the GTA-Chests project.
*/
public class GTAChests extends JavaPlugin {
public static Logger log = new Logger();
@Getter
private static GTAChests instance;
@Getter
private DataTypes.RandomRange range;
@Getter
private List<ItemData> globalData = Lists.newArrayList();
@Getter
private int resetTime;
@Getter
public HashMap<RegionType, List<ItemData>> itemsByRegion = new HashMap<>();
public void onEnable() {
this.instance = this;
saveDefaultConfig();
resetTime = getConfig().getInt("resetTime");
String range = getConfig().getString("itemCount");
this.range = new DataTypes.RandomRange(Integer.parseInt(range.split("-")[0]), Integer.parseInt(range.split("-")[1]));
for (String item : getConfig().getStringList("items")) {
ItemData id = new ItemData(item);
if (id.getApplicableRegions().size() == 0) {
globalData.add(id);
for (RegionType t : RegionType.values()) {
if (itemsByRegion.containsKey(t)) {
List<ItemData> reCreate = itemsByRegion.remove(t);
reCreate.add(id);
itemsByRegion.put(t, reCreate);
} else {
List<ItemData> construct = Lists.newArrayList();
construct.add(id);
itemsByRegion.put(t, construct);
}
}
} else {
for (RegionType t : id.getApplicableRegions()) {
if (itemsByRegion.containsKey(t)) {
List<ItemData> reCreate = itemsByRegion.remove(t);
reCreate.add(id);
itemsByRegion.put(t, reCreate);
} else {
List<ItemData> construct = Lists.newArrayList();
construct.add(id);
itemsByRegion.put(t, construct);
}
}
}
}
new GTAChestsListener();
ChestManager.tickDown();
}
public void onDisable() {
saveDefaultConfig();
ChestManager.clear();
}
}