Войти или зарегистрироваться

Помогите Загрузка и выгрузка данных из конфига

xflyiwnl

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
xflyiwnl
Как мне можно сделать загрузку данных из residents и states в конфиг, а потом выгрузить?

В главном классе
Код:
private Set<Resident> residents = new HashSet<Resident>();
    private Set<State> states = new HashSet<State>();

State.java
Код:
public class State {

    private String name;

    private Resident leader;

    private Location spawn;
    private String created;

    private Integer killedAllies;
    private Integer killedEnemies;

    private List<String> towns;

    private List<Resident> residents;
    private List<Resident> helpers;

    private List<State> allies;
    private List<State> enemies;

    public State(String name, Resident leader, Location spawn, String created, Integer killedAllies, Integer killedEnemies, List<String> towns, List<Resident> residents, List<Resident> helpers, List<State> allies, List<State> enemies) {
        this.name = name;
        this.leader = leader;
        this.spawn = spawn;
        this.created = created;
        this.killedAllies = killedAllies;
        this.killedEnemies = killedEnemies;
        this.towns = towns;
        this.residents = residents;
        this.helpers = helpers;
        this.allies = allies;
        this.enemies = enemies;
    }

Resident.java
Код:
public class Resident {

    private String name;
    private UUID uniqueId;
    private Profession profession;

    private State state;
    private State lastState;

    private String created;

    private Integer reputation;
    private Integer stateReputation;

    private Integer killedAllies;
    private Integer killedEnemies;

    private String timeInState;

    public Resident(String name, UUID uniqueId, Profession profession, State state, State lastState, String created, Integer reputation, Integer stateReputation, Integer killedAllies, Integer killedEnemies, String timeInState) {
        this.name = name;
        this.uniqueId = uniqueId;
        this.profession = profession;
        this.state = state;
        this.lastState = lastState;
        this.created = created;
        this.reputation = reputation;
        this.stateReputation = stateReputation;
        this.killedAllies = killedAllies;
        this.killedEnemies = killedEnemies;
        this.timeInState = timeInState;
    }
 
Последнее редактирование:
Попробовал сделать сохранение - сохраняется.
states.yml
Код:
states:
  У_козочки:
    name: У_козочки
    leader: xflyiwnl
    spawn:
      x: -0.08560819016218141
      y: 88.0
      z: 188.48476087716404
      yaw: -175.07654
      pitch: 43.790485
      world: world
    created: 19.8.2022
    killedAllies: 0
    killedEnemies: 0
    towns: []
    residents:
    - xflyiwnl
    helpers: []
    allies: []
    enemies: []

residents.yml
Код:
residents:
  xflyiwnl:
    name: xflyiwnl
    uniqueId: 593f5459-89cc-3ced-9d99-c3ccaf304691
    state: У_козочки
    created: 19.8.2022
    reputation: 0
    stateReputation: 0
    killedAllies: 0
    killedEnemies: 0

Теперь мне надо загрузить это всё добро при включении плагина. Прошёлся так по всему конфигу и вытаскивать данные states, но мне выдаёт ошибку из-за того, что resident это null и резиденты еще не загружены. Если загрузить residents первым, то он требует state, который еще не загружен и он null, а ЕСЛИ загрузить states первым, то он требует residents тоже null.

Код:
for (String key : StateConfig.getStatesYaml().getConfigurationSection("residents").getKeys(false)) {

Как мне поступить, у меня не идеи как это реализовать..
 
UP, есть желающие помочь?
 
Не сохраняй объект State у резидента. Вместо этого храни название своего State
 
Не сохраняй объект State у резидента. Вместо этого храни название своего State
Спасибо, это должно сработать. Еще вопрос, возможно ли выгрузить state и resident вместе, с хранением объекта State в residents?
 
Назад
Верх