Night Auto Config
Активный0.0
Установок
Последнее обновление
Версии
Night Auto Config
Преобразуйте любые данные в конфигурационные файлы! Night Auto Config представляет собой интеграцию библиотеки Night Config с системой Auto Config, которая теперь встроена в Cloth Config.
Как это работает
Данный мод предоставляет реализацию NightConfigSerializer, которая соответствует требованиям Auto Config к сериализаторам. Вы можете выбрать любой из поддерживаемых Night Config форматов конфигурации и использовать этот сериализатор так же, как и другие стандартные сериализаторы, включая совместную работу с PartitioningSerializer.
Установка в проект
Для добавления Night Auto Config в ваш проект рекомендуется использовать сервис JitPack.
Groovy
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
modApi "com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}"
// Здесь также нужно подключить Cloth Config API
}
Kotlin DSL
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
modApi("com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}")
// Здесь также нужно подключить Cloth Config API
}
В файле gradle.properties укажите:
nightautoconfig_version={последняя_версия}
Замените {последняя_версия} на актуальный номер версии Night Auto Config.
Объявление зависимостей
Не забудьте указать Night Auto Config как зависимость в метаданных вашего мода.
{
"depends": {
"nightautoconfig": "*"
}
}
Пример использования
Реализация сериализатора находится по адресу band.kessokuteatime.nightautoconfig.config.NightConfigSerializer.
Вот простой пример конфигурации:
// Используйте аннотации Night Auto Config для определения провайдеров сериализации и десериализации во время выполнения!
@SerializerProvider(MyClassSerializerProvider.class)
@Config(name = "my_config")
public class MyConfig implements ConfigData {
// Какие-то поля...
private transient final Supplier<String> someStringProvider = () -> "по_умолчанию";
// Все аннотации Night Config доступны
@SerdeDefault(provider = "someStringProvider")
public String someString = someStringProvider.get();
// Night Auto Config предоставляет интерфейсы для удобных реализаций
// Например, UnifiedSerializerProvider<T, R> реализует и ValueSerializer<T, R>, и ValueSerializerProvider<T, R>
public static class MyClassSerializerProvider implements UnifiedSerializerProvider<MyClass, String> {
// ...
}
// Пользовательский провайдер сериализации для MyClass уже указан при определении типа
public MyClass someInstance = new MyClass();
}
Пример инициализации мода:
public class MyMod implements ModInitializer {
@Override
public void onInitialize() {
// Не забудьте зарегистрировать конфигурацию в Auto Config при инициализации
AutoConfig.register(NightExampleConfig.class, ConfigType.DEFAULT_COMMENTED::fileWatcherSerializer);
}
}
Для более подробных примеров работы во время выполнения ознакомьтесь с соответствующим пакетом в репозитории.
Для обеспечения базовой совместимости рекомендуется аннотировать поля с помощью com.electronwill.nightconfig.core.serde.annotations.SerdeDefault. В противном случае могут возникать случайные ошибки сериализации.