Конфиги

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

Haydex

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
BloodBaronessa
Всем привет! Работая с конфигами, у меня появился вопрос: как кэшировать данные конфигов?
 
Конфиги загружается в память, они сохраняются в файл только когда ты сам это делаешь.
 
Последнее редактирование:
Они кешируются как только ти их загружаешь в пам'ять.
Вызов getConfig() не грузит каждый раз данные с файла.
 
Ну если тебе не удобно работать с ведроконфигом. Вот держи класс для обхода сие говна.

Код:
package Example.sfg;

import java.util.Map;

import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.SerializableAs;

@SerializableAs(value = "MapSer")
public class MapSer implements ConfigurationSerializable {

    private Map<String, Object> map;

    public MapSer(Map<String, Object> map) {
        this.map = map;
    }

    @Override
    public Map<String, Object> serialize() {
        return map;
    }

    public static MapSer deserialize(Map<String, Object> map) {
        return new MapSer(map);
    }

    public Map<String, Object> get() {
        return map;
    }
}
Регаешь сериализатор где то в главном классе.

Код:
    static {
        ConfigurationSerialization.registerClass(MapSer.class, "MapSer");
    }
Пример юза.
Map<String, Object> map = new HashMap<String, Object>();
MapSer ms = new MapSer(map);
ms.get().put("test", "test");
this.getConfig().set("name", ms);
ms = (MapSer) this.getConfig().get("name", MapSer.class);
 
Последнее редактирование:
Ну если тебе не удобно работать с ведроконфигом. Вот держи класс для обхода сие говна.

Код:
package Example.sfg;

import java.util.Map;

import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.SerializableAs;

@SerializableAs(value = "MapSer")
public class MapSer implements ConfigurationSerializable {

    private Map<String, Object> map;

    public MapSer(Map<String, Object> map) {
        this.map = map;
    }

    @Override
    public Map<String, Object> serialize() {
        return map;
    }

    public static MapSer deserialize(Map<String, Object> map) {
        return new MapSer(map);
    }

    public Map<String, Object> get() {
        return map;
    }
}
Регаешь сериализатор где то в главном классе.

Код:
    static {
        ConfigurationSerialization.registerClass(MapSer.class, "MapSer");
    }
Пример юза.
Map<String, Object> map = new HashMap<String, Object>();
MapSer ms = new MapSer(map);
ms.get().put("test", "test");
this.getConfig().set("name", ms);
ms = (MapSer) this.getConfig().get("name", MapSer.class);
Спасибо.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх