▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Night Auto Config
Night Auto Config

Night Auto Config

Библиотека-мост между Night Config и Auto Config для Майнкрафт. Позволяет сериализовать конфиги в любом формате Night Config прямо через Auto Config, включая поддержку PartitioningSerializer.

Оцените первым
191.9K
15

Night Auto Config

Night Auto Config - это интеграция библиотеки Night Config в систему Auto Config (которая теперь встроена в Cloth Config). По сути, это прослойка, которая заставляет две системы дружить друг с другом, чтобы ты мог сериализовать настройки своего мода в любом формате, который предлагает Night Config.

Зачем это нужно

В Майнкрафт каждый мод хранит конфиги по-своему. Auto Config упрощает этот процесс, но ограничен форматами по умолчанию. Night Auto Config снимает эти ограничения: ты можешь взять любой формат Night Config (TOML, JSON5, HOCON и т.д.) и использовать его через привычный Auto Config, даже с PartitioningSerializer, который режет конфиг на несколько файлов.

Как это работает

Внутри Night Auto Config есть NightConfigSerializer - реализация интерфейса сериализатора для Auto Config. Просто подключаешь его - и всё летает.

Подключение к проекту

Лучше всего ставить через JitPack:

Groovy (build.gradle)
repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    modApi "com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}"
    // Cloth Config тащи отдельно
}

gradle.properties:

nightautoconfig_version={latest}
Kotlin DSL (build.gradle.kts)
repositories {
    maven { url = uri("https://jitpack.io") }
}

dependencies {
    modApi("com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}")
    // Cloth Config тоже нужен
}

gradle.properties:

nightautoconfig_version={latest}

{latest} замени на последний тег релиза Night Auto Config.

Пропиши зависимость в метаданных мода

Не забудь указать Night Auto Config как зависимость в Fabric или Quilt:

{
    "depends": {
        "nightautoconfig": "*"
    }
}

Использование

Сам сериализатор лежит в band.kessokuteatime.nightautoconfig.config.NightConfigSerializer.

Пример кода:

MyConfig.java:

// Аннотации Night Auto Config задают провайдеры сериализации и десериализации на лету
@SerializerProvider(MyClassSerializerProvider.class)
@Config(name = "my_config")
public class MyConfig implements ConfigData {
    // Все аннотации Night Config тоже работают
    @SerdeDefault(provider = "someStringProvider")
    public String someString = someStringProvider.get();

    private transient final Supplier<String> someStringProvider = () -> "default";

    public static class MyClassSerializerProvider implements UnifiedSerializerProvider<MyClass, String> {
        // ...
    }

    public MyClass someInstance = new MyClass();
}

MyMod.java:

public class MyMod implements ModInitializer {
    @Override
    public void onInitialize() {
        AutoConfig.register(NightExampleConfig.class, ConfigType.DEFAULT_COMMENTED::fileWatcherSerializer);
    }
}

Важно знать

Чтобы избежать ошибок сериализации, помечай поля аннотацией @SerdeDefault из com.electronwill.nightconfig.core.serde.annotations. Иначе могут вылетать эксепшены.

Если тебе нужны живые примеры - глянь в папку examples внутри библиотеки.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x1.20.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:7 месяцев назад
Главная