Скачать Night Auto Config — Minecraft Моды — MetaMods

Night Auto Config

Активный

Установок

0

Последнее обновление

1 год назад

Версии

1.20 — 1.21.4
Клиент
Fabric
Quilt
Библиотеки

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&lt;T, R&gt; реализует и ValueSerializer&lt;T, R&gt;, и ValueSerializerProvider&lt;T, R&gt;
    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. В противном случае могут возникать случайные ошибки сериализации.

Участники проекта
KrLite

KrLite

Разработчик

Создан: 11 июл 2024

ID: 1297