SuperMartijn642's Config Lib
Библиотека SuperMartijn642's Config Lib упрощает работу с конфигами для разработчиков модов. Автоматически синхронизирует настройки между клиентом и сервером, поддерживает Minecraft 1.12-1.19.
SuperMartijn642's Config Lib - это вспомогательная библиотека для разработчиков модов, которая берет на себя всю рутину с конфигурационными файлами. Если вы обычный игрок и увидели этот файл в папке mods, не спешите его удалять - скорее всего, от него зависят другие моды в вашей сборке. Конфиг Либ работает в фоне и просто делает так, чтобы настройки других модов работали корректно.
Зачем нужен этот мод
Написание конфигов для Minecraft - та еще задачка. Разработчику нужно не просто создать файл, но и проследить, чтобы значения перезагружались при загрузке мира, корректно синхронизировались между сервером и клиентами, а также генерировались только для нужной стороны (клиента или сервера). Config Lib решает эту проблему: вы указываете конфиг один раз, а библиотека сама делает всю грязную работу.
Как это работает (для разработчиков)
Конфигурация создается через ModConfigBuilder. Просто создаем новый экземпляр:
ModConfigBuilder builder = new ModConfigBuilder();
Добавить значение можно через ModConfigBuilder#define. Метод принимает имя и значение по умолчанию. Для чисел (integer и double) нужно обязательно указать минимальное и максимальное значение. Метод возвращает 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 );
По умолчанию значения перезагружаются при загрузке мира в Майнкрафт. Если вы хотите, чтобы значение менялось только при полном перезапуске игры, используйте 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 );
Также значения можно группировать по категориям с помощью ModConfigBuilder#push(String) и ModConfigBuilder#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.19.
Для сборок модов и серверов
Мод можно смело добавлять в любые модпаки. Для серверов это особенно полезно - настройки корректно доходят до игроков без лишних багов и рассинхрона. Скачайте SuperMartijn642's Config Lib, если собираете свою сборку модов для Minecraft, и забудьте о проблемах с конфигами.
Часто задаваемые вопросы
Совместимость
Создатели
Детали
Версии мода SuperMartijn642's Config Lib
Доступно 58 версий. Сначала показаны самые популярные и самые свежие.