
SuperMartijn642's Config Lib

SuperMartijn642's 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);
По умолчанию значения перезагружаются при каждой загрузке мира. Если вам нужно, чтобы настройка обновлялась только при перезапуске Minecraft, используйте ModConfigBuilder#gameRestart():
Supplier<Boolean> notReloadedValue = builder.comment("this value will not be reloaded")
.define("notReloadedValue", true);
Значения из конфигов COMMON и SERVER по умолчанию синхронизируются с клиентами. Чтобы отключить синхронизацию, добавьте ModConfigBuilder#dontSync():
Supplier<Boolean> notSynchronizedValue = builder.comment("this 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.14, 1.15, 1.16, 1.17, 1.18 и 1.19.
Пример мода
Конкретный пример использования Config Lib можно посмотреть в тестовом моде.
Часто задаваемые вопросы
Могу ли я использовать ваш мод в своём модпаке?
Да, конечно, можете.
Discord
За новостями о будущих модах и просто для общения заглядывайте на Discord-сервер SuperMartijn642:

Все права на данный контент принадлежат его авторам. Мы не храним и не распространяем файлы — страница носит исключительно информационный характер. Оригинальный источник доступен по этой ссылке.

Плагины
Шейдеры
Текстуры
Карты
Скины
Сиды
Новости
Комментарии (0)
Пока нет комментариев
Будьте первым!