YAML Config avatar

YAML Config [1.21.8]

YAML Config: Мод для конфигурации Minecraft

Обзор

YAML Config — это мощный мод для конфигурации Minecraft, который позволяет разработчикам модов создавать и управлять настройками конфигурации с использованием формата файлов YAML. Он предлагает удобный графический интерфейс, обширную поддержку типов данных и надежную синхронизацию между клиентом и сервером.

Возможности

  • Формат файлов YAML: YAML Config использует формат файлов YAML, известный своей читаемостью и простотой использования.

  • Графический интерфейс (GUI): Продуманный графический интерфейс позволяет игрокам легко находить и редактировать настройки конфигурации.

  • Обширная поддержка типов данных: Мод поддерживает широкий спектр типов данных, включая:

    • Примитивные типы: boolean, int, float, double, String, ResourceLocation, Registry
    • Коллекции: List, Map
    • Дата и время: LocalDateTime
  • Синхронизация сервер-клиент: Изменения, внесенные в конфигурации на сервере, автоматически синхронизируются с клиентами, обеспечивая согласованность игрового процесса.

  • Поддержка модпаков: Мод разработан для seamless работы с существующими модпаками, предлагая гибкую и расширяемую систему конфигурации.

  • Проверка и обработка ошибок: Мод включает надежную проверку и обработку ошибок, гарантируя, что конфигурации соответствуют ожидаемым требованиям.

Установка и использование

Установка

  1. Загрузите мод: Загрузите последнюю версию YAML Config с официального сайта мода, CurseForge или Modrinth.
  2. Поместите файл мода: Переместите загруженный JAR-файл в папку «mods» в директории вашей игры Minecraft.
  3. Запустите Minecraft: Запустите Minecraft и войдите в мир.

Использование

  1. Откройте экран конфигураций: Нажмите клавишу «F12» на клавиатуре, чтобы открыть экран конфигураций.

  2. Перейдите к конфигурации: На экране конфигураций отображается список доступных конфигураций. Выберите мод, настройки которого вы хотите изменить.

  3. Редактирование записей конфигурации: Экран конфигурации отображает доступные настройки. Каждая запись включает:

    • Заголовок: Название настройки.
    • Поле ввода: Поле для редактирования значения.
    • Кнопка сброса: Кнопка для сброса значения к значению по умолчанию.
  4. Сохраните изменения: Нажмите кнопку «Сохранить изменения», чтобы сохранить ваши правки. Мод автоматически сохранит изменения в файл конфигурации и синхронизирует их с другими игроками на сервере (если применимо).

Разработка

Создание конфигураций

1. Определите класс конфигурации:

  • Создайте новый Java-класс в кодовой базе вашего мода, который представляет конфигурацию вашего мода.
public class MyModConfig {

    public static IConfig config;

    public static IConfigEntry debug;

    public static void init() {
        ConfigBuilder builder = new ConfigBuilder(MyMod.MOD_ID, "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
    }
}

2. Определите записи конфигурации:

  • Используйте класс ConfigBuilder для определения настроек вашей конфигурации.
  • Выберите подходящий тип данных для каждой записи, используя методы define*.
// Пример определения логической записи:
debug = builder.defineBoolean("debug", false); 

// Пример определения целочисленной записи с диапазоном:
intEntry = builder.defineInteger("intEntry", 10, 0, 100); // Мин. 0, макс. 100

// Пример определения строковой записи с шаблоном:
stringEntry = builder.defineString("stringEntry", "test", "test\\d+"); 

// Пример определения записи реестра:
registryEntry = builder.defineRegistry("registryEntry", Blocks.GRASS_BLOCK, BuiltInRegistries.BLOCK);

// Пример определения списка:
stringListEntry = builder.defineStringList("stringListEntry", List.of("test1", "test2", "test3"), 3, 10); // Мин. 3, макс. 10

// Пример определения карты:
integerMapEntry = builder.defineIntegerMap("integerMapEntry", Map.of("test1", 1, "test2", 2, "test3", 3), 3, 10); // Мин. 3, макс. 10

3. Соберите конфигурацию:

  • Вызовите метод build() у ConfigBuilder, чтобы создать вашу конфигурацию.
  • Сохраните конфигурацию в статическом поле для легкого доступа в коде вашего мода.
public MyModConfig() {
    ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
    // ... определение записей конфигурации 
    config = builder.build(); 
}

4. Доступ к значениям конфигурации в вашем коде:

  • Используйте метод get() для получения текущего значения записи конфигурации.
  • Используйте метод set() для изменения значения записи конфигурации.
// Пример:
boolean debugEnabled = MyModConfig.debug.get(); // Получить текущее значение настройки "debug"

if (debugEnabled) {
    // Выполнить действия, связанные с отладкой 
}

MyModConfig.intEntry.set(25); // Установить значение "intEntry" равным 25

Тип конфигурации

  • ConfigType.CLIENT: Клиентские конфигурации специфичны для клиента, на котором установлен мод. Они не передаются другим игрокам на сервере.
  • ConfigType.SERVER: Серверные конфигурации специфичны для выделенных серверов. Они не используются в одиночных мирах и не синхронизируются с игроками на сервере.
  • ConfigType.COMMON: Общие конфигурации используются как на клиентах, так и на сервере. Их можно редактировать на сервере, напрямую изменяя файл конфигурации и перезапуская сервер, или редактируя значения с помощью внутриигрового графического интерфейса и сохраняя изменения.

Использование пользовательских типов данных

  • Используйте интерфейс IConfigEntryType для регистрации пользовательских типов данных в моде YAML Config.
  • Реализуйте пользовательский сериализатор для обработки сериализации и десериализации вашего пользовательского типа данных.

Конфигурация модпаков

  • Если вы создаете модпак, вы можете использовать YAML Config для определения настроек конфигурации вашего модпака.
  • Поместите файл конфигурации для вашего модпака в папку «config» в директории вашего модпака.

Примеры

// Пример: Базовая клиентская конфигурация

public class MyModConfig {

    public static IConfig config;

    public static IConfigEntry debug;
    public static IConfigEntry testInt;

    public static void init() {
        ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);

        debug = builder.defineBoolean("debug", false) // по умолчанию false.
                .withComments("Включен ли режим отладки для мода.");

        testInt = builder.defineInteger("testInt", 10, 0, 100); // по умолчанию 10, мин. 0 и макс. 100.

        config = builder.build();
    }
}

Требуемые зависимости

Architectury API avatarArchitectury APIshedaniel
UI Lib avatarUI LibDAQEM

Скачать YAML Config

 
Тип Скачать Версия Загрузчик Обновлено Размер
ReleaseYAML Config NeoForge 1.21.6 - 1.3.0-1.21.61.21.6+2 NeoForge7 сентября 2025573,1 КБ
ReleaseYAML Config Fabric 1.21.6 - 1.3.0-1.21.61.21.6+2 Fabric7 сентября 2025570,3 КБ
ReleaseYAML Config NeoForge 1.21.5 - 1.2-1.21.51.21.5NeoForge11 июля 2025563,1 КБ
ReleaseYAML Config Fabric 1.21.5 - 1.2-1.21.51.21.5Fabric11 июля 2025560,5 КБ
ReleaseYAML Config NeoForge 1.21 - 1.2-1.211.21+1 NeoForge11 июля 2025561,5 КБ
ReleaseYAML Config Fabric 1.21 - 1.2-1.211.21+1 Fabric11 июля 2025558,9 КБ
ReleaseYAML Config NeoForge 1.21.5 - 1.1-1.21.51.21.5NeoForge3 апреля 2025563,1 КБ
ReleaseYAML Config Fabric 1.21.5 - 1.1-1.21.51.21.5Fabric3 апреля 2025560,5 КБ
ReleaseYAML Config NeoForge 1.21 - 1.1-1.211.21+1 NeoForge3 апреля 2025561,5 КБ
ReleaseYAML Config Fabric 1.21 - 1.1-1.211.21+1 Fabric3 апреля 2025558,9 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.