Скачать JasonConfig — Minecraft Моды — MetaMods

JasonConfig

Активный

Установок

5

Последнее обновление

8 месяцев назад
Клиент
Библиотеки
Утилиты

JasonConfig

Это библиотечный мод — обычным пользователям достаточно просто установить его, не читая дальше!

Для разработчиков

Добавление зависимости

Рекомендуется использовать CurseMaven для подключения зависимости. Пример добавления (обратите внимание, что это лишь шаблон, реальный идентификатор мода отличается):

implementation "curse.maven:cloth-config-348521:5987045"

Преимущества и недостатки по сравнению с конфигурационной системой Forge

Преимущества:

  • Использует JSON вместо TOML, что повышает надёжность (например, конфиги Forge плохо работают с пустыми списками)
  • Поддерживает чтение и запись большего количества Java/Minecraft классов (например, Vec3, который не работает в конфигах Forge)
  • Более простой код при сохранении схожести с созданием конфигурационных классов Forge

Недостатки:

  • Менее удобочитаем для пользователей из-за формата JSON
  • Экспериментальный статус — возможны необнаруженные ошибки
  • Отсутствует разделение конфигов по сторонам (клиент/сервер) как в системе "serverconfigs" Forge

Пример конфигурации

Полный пример можно найти в пакете "api" после добавления зависимости. Все элементы хорошо документированы.

public class SimpleExampleConfigClass {
public static final Config EXAMPLE_CONFIG = new Config(MODID + "-example_config");
///Следующие значения конфигурации добавляются автоматически в переданный Config
public static final ConfigValue<Float> EXAMPLE_FLOAT = new ConfigValue<>(10f, "exampleFloat", EXAMPLE_CONFIG);
///Комментарии располагаются в порядке объявления
public static final ConfigComment EXAMPLE_COMMENT = new ConfigComment("Это список!", EXAMPLE_CONFIG);
public static final ConfigValue<List<String>> EXAMPLE_LIST = new ConfigValue<>(List.of("value1", "value2", "value3", "value4"), "exampleList", EXAMPLE_CONFIG);
public static final ConfigComment VEC3_COMMENT = new ConfigComment("Это Vec3! Многие Java-классы, не работающие в конфигах Forge, здесь работают!", EXAMPLE_CONFIG);
public static final ConfigValue<Vec3> EXAMPLE_VEC3 = new ConfigValue<>(new Vec3(123,123,123), "exampleVec3", EXAMPLE_CONFIG);

///Этот метод должен быть вызван в главном классе вашего мода
/// Необходимо вызвать метод {<code>register()</code>} для объявленного Config
public static void init()/ Этот метод может называться как угодно: init(), register() и т.д./ {
EXAMPLE_CONFIG.register();

///ПРИМЕРЫ ПОЛУЧЕНИЯ ЗНАЧЕНИЙ
//ЯВНЫЙ СПОСОБ (очень похоже на конфиги Forge)
SimpleExampleConfigClass.EXAMPLE_FLOAT.get();
}
}
Участники проекта
jeducklet

jeducklet

Создан: 25 янв 2025

ID: 69878