Помогите Как сохранить более одного параметра для игрока в config.yml

  • Автор темы Автор темы slime_j
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

slime_j

Участник
Пользователь
Баллы
36
Имя в Minecraft
slime_j
Привет)
Для моего плагина мне нужно сохранять несколько индивидуальных параметров для каждого игрока в .yml и что бы они выдавались ему при заходе на сервер. Я смог реализовать подобную вещь с кастомным здоровьем. Например в игрока 256хп но сердец по стандарту 20 и когда игрок получает урон то отнимаються 256хп а не 20 сердец. Надеюсь вы поняли). Если нет лучше переспросите. Так вот, мне кроме кастомного ХП ещё нужно несколько параметров:
Максимальное здоровье
Регенирация (по стандарту за раз регенерируеться 1хп а мне нужно например 10)
Уровень
Количество опыта на новый уровень

Такими функциями у меня реализовано сохранение кастомного здоровья и его возврат игроку, когда он заходит на сервер.
Код:
public void saveHealth() {
        for(Map.Entry<String, Integer> entry : playerhealth.entrySet()) {
            this.getConfig().set("data." + entry.getKey(), entry.getValue());
        }
        this.saveConfig();
    }
    
    public void restoreHealth() {
        this.getConfig().getConfigurationSection("data").getKeys(false).forEach(key ->{
            Integer content = (Integer) this.getConfig().get("data." + key);
            playerhealth.put(key, content);
        });
    }

Как я могу сохранять несколько параметров об игроке, а потом возвращать их всех при заходе игрока на сервер? Например что бы было так:
data:
slime_j: 56(количество здоровья), 100(максимальное количество здоровья), 10(регенерация), и тд.
"Повторюсь, систему для сохранения и возврата данных для одного параметра я реализовал. Теперь просто нехватает знаний. Поэтому прошу помощи. Спасибо)"
 
String str = кфг.getString(section).split(",")[тут номер значения]

Номер значения

[0] - кол-во здоровья
[1] - макс кол-во здоровья
[2] - регенерация

Если значений больше, то с ними та же история

Вроде так
 
String str = кфг.getString(section).split(",")[тут номер значения]

Номер значения

[0] - кол-во здоровья
[1] - макс кол-во здоровья
[2] - регенерация

Если значений больше, то с ними та же история

Вроде так
А могу ли я вот так записывать и если да, то как? Что бы для каждого значения был разный HashMap
data:
slime_j:
56(количество здоровья)
100(максимальное количество здоровья)
10(регенерация)
 
А могу ли я вот так записывать и если да, то как? Что бы для каждого значения был разный HashMap
data:
slime_j:
56(количество здоровья)
100(максимальное количество здоровья)
10(регенерация)
Не проще сделать так:

Код:
data:
 slime_j:
  Hp: 56
  MaxHp: 100
  Regen: 10
 
Сюда так и просится сериализация/десериализация. К тому же тут только числовые значения.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх