public void saveStates() {
for (State state : states) {
StateConfig.getStatesYaml().set("states." + state.getName() + ".name", state.getName());
StateConfig.getStatesYaml().set("states." + state.getName() + ".leader", state.getLeader().getName());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.x", state.getSpawn().getX());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.y", state.getSpawn().getY());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.z", state.getSpawn().getZ());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.yaw", state.getSpawn().getYaw());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.pitch", state.getSpawn().getPitch());
StateConfig.getStatesYaml().set("states." + state.getName() + ".spawn.world", state.getSpawn().getWorld().getName());
StateConfig.getStatesYaml().set("states." + state.getName() + ".created", state.getCreated());
StateConfig.getStatesYaml().set("states." + state.getName() + ".killedAllies", state.getKilledAllies());
StateConfig.getStatesYaml().set("states." + state.getName() + ".killedEnemies", state.getKilledEnemies());
List<String> residents = new ArrayList<String>();
List<String> helpers = new ArrayList<String>();
List<String> allies = new ArrayList<String>();
List<String> enemies = new ArrayList<String>();
for (Resident resident : state.getResidents()) {
residents.add(resident.getName());
}
for (Resident helper : state.getHelpers()) {
helpers.add(helper.getName());
}
for (State ally : state.getAllies()) {
allies.add(ally.getName());
}
for (State enemy : state.getEnemies()) {
enemies.add(enemy.getName());
}
StateConfig.getStatesYaml().set("states." + state.getName() + ".towns", state.getTowns());
StateConfig.getStatesYaml().set("states." + state.getName() + ".residents", residents);
StateConfig.getStatesYaml().set("states." + state.getName() + ".helpers", helpers);
StateConfig.getStatesYaml().set("states." + state.getName() + ".allies", allies);
StateConfig.getStatesYaml().set("states." + state.getName() + ".enemies", enemies);
try {
StateConfig.getStatesYaml().save(StateConfig.getStatesFile());
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void loadStates() {
if (!StateConfig.getStatesYaml().isConfigurationSection("states")) {
return;
}
for (String key : StateConfig.getStatesYaml().getConfigurationSection("states").getKeys(false)) {
String name = key;
Resident leader = IridiumState.getInstance().getResident(
StateConfig.getStatesYaml().getString("states." + key + ".leader"));
Location spawn = new Location(
Bukkit.getWorld(StateConfig.getStatesYaml().getString("states." + key + ".spawn.world")),
StateConfig.getStatesYaml().getDouble("states." + key + ".spawn.x"),
StateConfig.getStatesYaml().getDouble("states." + key + ".spawn.y"),
StateConfig.getStatesYaml().getDouble("states." + key + ".spawn.z"),
(float) StateConfig.getStatesYaml().getDouble("states." + key + ".spawn.yaw"),
(float) StateConfig.getStatesYaml().getDouble("states." + key + ".spawn.pitch"));
String created = StateConfig.getStatesYaml().getString("states." + key + ".created");
Integer killedAllies = StateConfig.getStatesYaml().getInt("states." + key + ".killedAllies");
Integer killedEnemies = StateConfig.getStatesYaml().getInt("states." + key + ".killedEnemies");
List<String> towns = StateConfig.getStatesYaml().getStringList("states." + key + ".towns");
List<Resident> residents = new ArrayList<Resident>();
List<Resident> helpers = new ArrayList<Resident>();
List<State> allies = new ArrayList<State>();
List<State> enemies = new ArrayList<State>();
for (String resident : StateConfig.getStatesYaml().getStringList("states." + key + ".residents")) {
residents.add(IridiumState.getInstance().getResident(resident));
}
for (String helper : StateConfig.getStatesYaml().getStringList("states." + key + ".helpers")) {
helpers.add(IridiumState.getInstance().getResident(helper));
}
for (String ally : StateConfig.getStatesYaml().getStringList("states." + key + ".allies")) {
allies.add(IridiumState.getInstance().getState(ally));
}
for (String enemy : StateConfig.getStatesYaml().getStringList("states." + key + ".enemies")) {
enemies.add(IridiumState.getInstance().getState(enemy));
}
IridiumState.getInstance().getStates().add(
new State(name, leader, spawn, created, killedAllies, killedEnemies, towns, residents, helpers, allies, enemies));
}
}