Для разработчиков
Добавление зависимости
Используйте CurseMaven. Репозиторий доступен по адресу: https://www.cursemaven.com/
Добавьте зависимость, используя сниппет с требуемой версией из раздела Files.
Пример (не актуальный мод):
implementation "curse.maven:cloth-config-348521:5987045"
Преимущества и недостатки по сравнению с конфигурацией Forge
Преимущества:
- Использует JSON вместо TOML, что повышает надёжность (например, конфиги Forge плохо поддерживают пустые списки)
- Поддерживает больше классов Java/Minecraft при чтении/записи (например, Vec3)
- Упрощённый синтаксис создания конфигурационных классов
Недостатки:
- Менее удобочитаем из-за формата JSON
- Экспериментальный статус — возможны невыявленные ошибки
- Отсутствие разделения на клиентские/серверные конфиги
Пример конфигурации
public class SimpleExampleConfigClass {
public static final Config EXAMPLE_CONFIG = new Config(MODID + "-example_config");
/// Значения конфига автоматически добавляются в {<code>EXAMPLE_CONFIG</code>}
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);
/// Этот метод должен быть вызван в главном классе вашего мода
public static void init() {
EXAMPLE_CONFIG.register();
SimpleExampleConfigClass.EXAMPLE_FLOAT.get();
}
}