- Баллы
- 76
Окей. У меня есть миниигра. Добавляю в неё team режим. Остановился и очень сильно заступорился на проблеме о точках спавнов тимейтов. Окей, добавляется всё в HM хорошо, всё работает, как надо, но всё никак не могу нормальное сохранение и доставание из config-а сделать... Окей, локации я храню в HashMap<String (Название цвета команды), List<Location>>. И не знаю, почему, но ну ни в какую не могу нормально сохранять и загружать это... Окей, сохраняется оно более-менее нормально этим кодом.
Но какое чудо нужно написать, чтобы обратно загружать - kill me please. Вот на чём я сейчас остановился. Разумеется, код не работает...
*Если что, сохраняю в onDisable, загружаю в onEnable.
Код:
for(Entry<String, List<Location>> tostore: Tspawns.entrySet()) {
for(int i=0;i<tostore.getValue().size();i++){
getConfig().set("Teams."+tostore.getKey()+"."+i+".World",tostore.getValue().get(i).getWorld().getName());
getConfig().set("Teams."+tostore.getKey()+"."+i+".x",tostore.getValue().get(i).getX());
getConfig().set("Teams."+tostore.getKey()+"."+i+".y",tostore.getValue().get(i).getY());
getConfig().set("Teams."+tostore.getKey()+"."+i+".z",tostore.getValue().get(i).getZ());
}
}
Код:
for(String b : getConfig().getConfigurationSection("Teams").getKeys(false)) {
List<Location> toadd = new ArrayList<>();
for(String i : getConfig().getConfigurationSection("Teams."+b).getKeys(false)){
toadd.add(new Location(Bukkit.getWorld(getConfig().getString("Teams." + b + "."+i+".World")),getConfig().getInt("Teams." + b + "."+i+".x"), getConfig().getInt("Teams." + b + "."+i+".y"), getConfig().getInt("Teams." + b + "."+i+".z")));
}
Tspawns.put(getConfig().getString("Teams."+b), toadd);
}