YAML Config
Библиотека конфигураций с GUI на основе формата YAML.
- Загрузчики
- FabricNeoForge
- Скачиваний на Modrinth
- 301 тыс.
- Подписчиков на Modrinth
- 36
- версии
- 44
- Обновлён
- 10 октября 202610 окт.
- Опубликован
- в 2024
Коротко о моде
Работает и в игре, и на сервере — ставьте, где нужен
YAML Config: мод для настройки конфигов в Minecraft
Обзор
YAML Config — это мощный мод для настройки конфигов в Minecraft, который позволяет разработчикам модов создавать и управлять настройками конфигурации с помощью формата файлов YAML. Он предлагает удобный GUI, обширную поддержку типов данных и надёжную сетевую синхронизацию между клиентом и сервером.
Возможности
- Формат файлов YAML: YAML Config использует формат файлов YAML, известный своей читаемостью и простотой использования.
- Интерфейс GUI: Хорошо продуманный GUI позволяет игрокам легко просматривать и редактировать настройки конфигурации.
Обширная поддержка типов данных: Мод поддерживает широкий спектр типов данных, включая:
- Примитивные типы:
boolean,int,float,double,String,ResourceLocation,Registry - Коллекции:
List,Map - Дата и время:
LocalDateTime
- Примитивные типы:
- Синхронизация сервер-клиент: Изменения, внесённые в конфигурации на сервере, автоматически синхронизируются с клиентами, обеспечивая согласованность игрового процесса.
- Поддержка модпаков: Мод разработан для бесшовной работы с существующими модпаками, предлагая гибкую и расширяемую систему конфигурации.
- Валидация и обработка ошибок: Мод включает надёжную валидацию и обработку ошибок, гарантируя, что конфигурации соответствуют ожидаемым требованиям.
Установка и использование
Установка
- Скачайте мод: Скачайте последнюю версию YAML Config с официального сайта мода, CurseForge или Modrinth.
- Поместите файл мода: Переместите скачанный JAR-файл в папку "mods" в директории Minecraft.
- Запустите Minecraft: Запустите Minecraft и зайдите в мир.
Использование
Откройте экран конфигов: Нажмите "F12" на клавиатуре, чтобы открыть экран конфигов.
Перейдите к конфигу: Экран конфигов отображает список доступных конфигураций. Выберите мод, конфигурацию которого хотите изменить.
Редактируйте записи конфига: Экран конфига отображает доступные настройки. Каждая запись включает:
- Заголовок: Название настройки.
- Поле ввода: Поле для редактирования значения.
- Кнопка сброса: Кнопка для сброса значения к значению по умолчанию.
- Сохраните изменения: Нажмите кнопку "Save Changes", чтобы сохранить изменения. Мод автоматически сохранит изменения в файл конфигурации и синхронизирует их с другими игроками на сервере (если применимо).
Разработка
Создание конфигураций
1. Определите класс конфига:
- Создайте новый Java-класс в кодовой базе вашего мода, который представляет конфигурацию вашего мода.
public class MyModConfig {
public static IConfig config;
public static IConfigEntry<Boolean> debug;
public static void init() {
ConfigBuilder builder = new ConfigBuilder(MyMod.MOD_ID, "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
}
}2. Определите записи конфига:
- Используйте класс
ConfigBuilderдля определения настроек вашей конфигурации. - Выберите подходящий тип данных для каждой записи с помощью методов
define*.
// Пример определения boolean-записи:
debug = builder.defineBoolean("debug", false);
// Пример определения integer-записи с диапазоном:
intEntry = builder.defineInteger("intEntry", 10, 0, 100); // Min 0, Max 100
// Пример определения string-записи с шаблоном:
stringEntry = builder.defineString("stringEntry", "test", "test\\d+");
// Пример определения registry-записи:
registryEntry = builder.defineRegistry("registryEntry", Blocks.GRASS_BLOCK, BuiltInRegistries.BLOCK);
// Пример определения списка:
stringListEntry = builder.defineStringList("stringListEntry", List.of("test1", "test2", "test3"), 3, 10); // Min 3, Max 10
// Пример определения map:
integerMapEntry = builder.defineIntegerMap("integerMapEntry", Map.of("test1", 1, "test2", 2, "test3", 3), 3, 10); // Min 3, Max 10
**3. Создание конфигурации:**
* Вызовите метод `build()` у `ConfigBuilder`, чтобы создать свою конфигурацию.
* Сохраните конфигурацию в статическом поле для удобного доступа из кода вашего мода.
```java
public MyModConfig() {
ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
// ... define config entries
config = builder.build();
}4. Доступ к значениям конфигурации в коде:
- Используйте метод
get(), чтобы получить текущее значение записи конфигурации. - Используйте метод
set(), чтобы изменить значение записи конфигурации.
// Example:
boolean debugEnabled = MyModConfig.debug.get(); // Retrieve the current value of the "debug" setting
if (debugEnabled) {
// Perform debug-related actions
}
MyModConfig.intEntry.set(25); // Set the value of the "intEntry" to 25Тип конфигурации
ConfigType.CLIENT: Клиентские конфигурации привязаны к клиенту, на котором установлен мод. Они не передаются другим игрокам на сервере.ConfigType.SERVER: Серверные конфигурации предназначены для выделенных серверов. Они не используются в одиночных мирах и не синхронизируются с игроками на сервере.ConfigType.COMMON: Общие конфигурации используются как клиентами, так и сервером. Их можно редактировать на сервере, напрямую изменяя файл конфигурации и перезапуская сервер, либо изменяя значения через внутриигровой GUI и сохраняя изменения.
Использование пользовательских типов данных
- Используйте интерфейс
IConfigEntryType, чтобы зарегистрировать пользовательские типы данных в моде YAML Config. - Реализуйте собственный сериализатор для сериализации и десериализации вашего пользовательского типа данных.
Конфигурация модпака
- Если вы создаёте модпак, вы можете использовать YAML Config, чтобы задать настройки конфигурации для вашего модпака.
- Поместите файл конфигурации вашего модпака в папку "config" внутри директории вашего модпака.
Примеры
// Example: Basic client-side configuration
public class MyModConfig {
public static IConfig config;
public static IConfigEntry<Boolean> debug;
public static IConfigEntry<Integer> testInt;
public static void init() {
ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
debug = builder.defineBoolean("debug", false) // default false.
.withComments("Whether debug mode is enabled for the mod.");
testInt = builder.defineInteger("testInt", 10, 0, 100); // default 10, min 0 and max 100.
config = builder.build();
}
}Частые вопросы
Как установить YAML Config?
Установите Fabric под свою версию Minecraft, скачайте YAML Config под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть YAML Config?
У YAML Config есть сборки для Minecraft 1.21–1.21.1, 1.21.5–1.21.9, 1.21.11–26.3.
Нужен ли YAML Config на сервере?
Работает и в игре, и на сервере — ставьте, где нужен
