SuperMartijn642 Config Lib — это библиотека конфигураций, которая позволяет задать параметры мода один раз, а затем автоматически обрабатывать:
-
перезагрузку значений при загрузке мира,
-
синхронизацию параметров с клиентами,
-
создание конфигураций отдельно для клиента или сервера.
Создание конфигурации
Конфигурация создаётся с помощью ModConfigBuilder. Для начала нужно создать новый экземпляр:
Добавление значений
Значения добавляются с помощью метода ModConfigBuilder#define, который принимает имя параметра и значение по умолчанию.
Для числовых значений (int и double) также необходимо указать минимальное и максимальное значения.
Пример:
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);
Метод define возвращает Supplier, который нужно сохранить, чтобы позже получать значение из конфигурации.
Добавление комментариев
Комментарий можно добавить перед определением параметра, используя ModConfigBuilder#comment:
builder.comment("Это комментарий к параметру 'valueWithComment'")
.define("valueWithComment", true);
Перезагрузка конфигурации
По умолчанию значения конфигурации перезагружаются при загрузке мира.
Если нужно, чтобы параметр применялся только после перезапуска Minecraft, используйте gameRestart():
builder.comment("Это значение применяется только после перезапуска игры")
.gameRestart()
.define("notReloadedValue", true);
Синхронизация с клиентом
Значения в конфигурациях COMMON и SERVER по умолчанию синхронизируются с клиентами.
Чтобы отключить синхронизацию, используйте dontSync():
builder.comment("Это значение не будет синхронизироваться с клиентом")
.dontSync()
.define("notSynchronizedValue", true);
Категории параметров
Параметры можно группировать по категориям.
Для этого используются методы:
-
push(String)— открыть категорию -
pop()— закрыть категорию
Пример:
Supplier<Boolean> specialValue =
builder.comment("Это значение относится к категории 'special'")
.define("specialValue", true);
builder.pop();
Также можно добавить комментарий к категории:
.categoryComment("Это комментарий для категории 'client'");
Завершение конфигурации
После добавления всех параметров необходимо вызвать:
После этого значения конфигурации будут автоматически:
-
перезагружаться,
-
синхронизироваться,
-
и доступны через сохранённые
Supplier.
