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

SuperMartijn642's Config Lib

SuperMartijn642's Config Lib - библиотека для Майнкрафт, упрощающая работу с конфигами. Позволяет задать настройки один раз, а перезагрузку, синхронизацию с клиентами и генерацию значений берет на себя.

Оцените первым
26.8M
1.3K

SuperMartijn642's Config Lib - это библиотека для Minecraft, которая решает вечную проблему мододелов: работу с конфигурационными файлами. Вместо того чтобы писать кучу однотипного кода для загрузки, перезагрузки и синхронизации настроек, можно просто задать конфиг один раз, а библиотека сама позаботится обо всем остальном. Она автоматически перезагружает значения при загрузке мира, синхронизирует их с клиентами (если нужно) и генерирует значения для клиентских или серверных настроек.

Короче, если ты разрабатываешь моды и устал от головной боли с конфигами - это то, что нужно. Библиотека работает на Fabric, Forge и NeoForge для Minecraft 1.12, 1.14, 1.15, 1.16, 1.17, 1.18 и 1.19.

Как создать конфиг

Все делается через ModConfigBuilder. Создаешь новый экземпляр:

ModConfigBuilder builder = new ModConfigBuilder();

Добавляешь значения через ModConfigBuilder#define. Для целых чисел и чисел с плавающей точкой нужно указать минимум и максимум. Метод возвращает Supplier, который потом используешь для получения значения:

Supplier<Boolean> booleanValue = builder.define( "booleanValue", true );

Supplier<Integer> integerValue = builder.define( "integerValue", 5, 0, 10 );

Supplier<Double> doubleValue = builder.define( "doubleValue", 0.5, 0, 1);

Supplier<ExampleEnum> enumValue = builder.define( "enumValue", ExampleEnum.VALUE_1 );

Комментарий к значению добавляется через ModConfigBuilder#comment(String) перед определением:

Supplier<Boolean> valueWithComment = builder.comment( "this is a comment for 'valueWithComment'" ).define( "valueWithComment ", true );

По умолчанию значения перезагружаются при загрузке мира. Если нужно, чтобы значение обновлялось только при запуске Minecraft - используй ModConfigBuilder#gameRestart():

Supplier<Boolean> notReloadedValue = builder.comment( "this is value will not be reloaded" ).define( "notReloadedValue", true );

Значения в COMMON или SERVER конфигах по умолчанию синхронизируются с клиентами. Чтобы отключить синхронизацию - ModConfigBuilder#dontSync():

Supplier<Boolean> notSynchronizedValue = builder.comment( "this is value will not be synchronized" ).define( "notSynchronizedValue", true );

Можно группировать значения в категории через push и pop:

builder.push( "special" );

Supplier<Boolean> specialValue = builder.comment( "this value is in the 'special' category" ).define( "specialValue", true );

builder.pop();

Комментарий к категории добавляется через ModConfigBuilder#categoryComment(String):

builder.push( "client" ).categoryComment( "this, is a comment for the 'client' category" );

После того как все значения определены - вызываешь ModConfigBuilder#build():

builder.build();

И все - значения в конфиге будут автоматически перезагружаться и синхронизироваться, а ты просто используешь сохраненные Supplier.

Важно знать

  • Можно ли использовать в сборке модов? Да, без проблем.
  • Какие версии Minecraft поддерживаются? 1.12, 1.14, 1.15, 1.16, 1.17, 1.18 и 1.19.
  • Нужно ли что-то еще для работы? Нет, библиотека самодостаточна.

Если ты собираешь модпак или пишешь свой мод - Config Lib реально упрощает жизнь. Особенно когда настроек много и нужно, чтобы они корректно работали на сервере и клиенте.

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

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

Minecraft: Java Edition

26.2.x26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.12.x

Платформы

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

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

Зависимости

Ссылки

Детали

Лицензия:
Опубликован:3 года назад
Обновлён:2 недели назад
Главная