
ModernConfig
ModernConfig - современная библиотека конфигураций для Fabric модов в Minecraft. Красивый интерфейс с анимациями, множество типов настроек и простой API для разработчиков.
ModernConfig - это библиотека конфигураций для Minecraft Fabric модов, которая делает настройку модов удобной и красивой. Забудьте про редактирование конфиг-файлов вручную: ModernConfig добавит в игру современный экран настроек с анимациями и полным набором элементов управления.
Основные возможности
Красивый интерфейс
- Плавные анимации и переходы
- Адаптивный дизайн
- Тёмная тема, удобная для глаз
Типы настроек
- Переключатели (toggle) - вкл/выкл
- Текстовые поля
- Слайдеры с настраиваемым диапазоном
- Списки с добавлением/удалением элементов
- Выбор цвета (HSV + hex)
- Выпадающие списки
- Категории для группировки настроек
Для разработчиков
- Простой API с билдером
- Слушатели изменений конфигурации
- Глобальный экран конфигурации для всех модов
- Интегрированный бинд - Right Shift (можно поменять)
- Оптимизированная производительность, анимации не жрут FPS
Установка
Для игроков
- Установите Fabric Loader и Fabric API.
- Скачайте ModernConfig.
- Переместите
.jarфайл в папкуmods. - Запустите Minecraft с профилем Fabric.
Для разработчиков
Добавьте ModernConfig в ваш build.gradle:
repositories {
maven {
name = 'QWERTZ-Repo'
url = 'https://repo.qwertz.app/'
}
}
dependencies {
modImplementation 'app.qwertz:modernconfig:1.3'
}
Использование
- Открыть конфигурацию: Нажмите
Right Shift(клавишу можно изменить). - Главный экран: Показывает все моды, использующие ModernConfig.
- Клик по моду: Открывает настройки этого мода.
- Кнопка назад: Возврат к предыдущему экрану.
Гайд для разработчиков
Быстрый старт
Вот как легко создать конфигурацию:
public class YourMod implements ClientModInitializer {
@Override
public void onInitializeClient() {
ModernConfig config = ConfigBuilder.create("YourMod", "Your Mod Configuration")
.toggle("enabled", "Enable Mod", true)
.slider("power", "Power Level", 50, 0, 100, 1)
.text("username", "Player Name", "Steve")
.color("theme_color", "Theme Color", 0x4A90E2)
.list("whitelist", "Player Whitelist", "Player Name")
.dropdown("difficulty", "Difficulty", Arrays.asList("Easy", "Normal", "Hard"), "Normal")
.build();
}
}
Категории
Если настроек много, их удобно сгруппировать:
ModernConfig config = ConfigBuilder.create("AdvancedMod", "Advanced Mod Settings")
.category("general", "General Settings", "Main configuration options", category -> category
.toggle("enabled", "Enable Mod", true)
.slider("update_interval", "Update Interval", 20, 1, 100, 1)
.text("server_url", "Server URL", "https://api.example.com")
)
.category("ui", "User Interface", "Customize the user interface", category -> category
.color("primary_color", "Primary Color", 0x4A90E2)
.color("secondary_color", "Secondary Color", 0x2ECC71)
.dropdown("theme", "Theme", Arrays.asList("Dark", "Light", "Auto"), "Dark")
.slider("ui_scale", "UI Scale", 1.0f, 0.5f, 2.0f, 0.1f)
)
.category("advanced", "Advanced Settings", "Advanced configuration options", category -> category
.toggle("debug_mode", "Debug Mode", false)
.list("blocked_items", "Blocked Items", "Item ID")
.list("whitelist", "Whitelisted Servers", "IP")
.text("api_key", "API Key", "")
)
.build();
Доступ к значениям конфигурации
// Получаем опции по пути категории
ConfigOption<?> enabledOption = config.getOption("general", "enabled");
ConfigOption<?> updateOption = config.getOption("general", "update_interval");
ConfigOption<?> whitelistOption = config.getOption("advanced", "whitelist");
// Получаем значения
boolean isEnabled = (Boolean) enabledOption.getValue();
int updateInterval = (Integer) updateOption.getValue();
List<String> whitelist = (List<String>) whitelistOption.getValue();
Типы настроек
Переключатель (Boolean)
.toggle("toggle_id", "Display Name", defaultValue)
- Назначение: Включение/выключение функций.
- Примеры: Флаги фич, вкл/выкл опции.
Текстовое поле (String)
.text("text_id", "Display Name", "default_value")
.text("text_id", "Display Name", "default_value", maxLength)
- Назначение: Ввод текста.
- Примеры: Ник игрока, URL сервера, пути, API-ключи.
Слайдер (Numeric)
.slider("slider_id", "Display Name", defaultValue, minValue, maxValue, step)
- Назначение: Числовой ввод с ограничениями.
- Примеры: Проценты, масштаб, интервалы, задержки.
Выбор цвета (Integer)
.color("color_option_id", "Display Name", 0xRRGGBB)
- Назначение: Выбор цвета с пикером.
- Примеры: Цвет темы, подсветка, UI-настройки.
Список (String Array)
.list("list_id", "Display Name", "Item Display Name")
- Назначение: Список текстовых записей.
- Примеры: Вайтлист игроков, заблокированные предметы, ключевые слова.
Выпадающий список (String Selection)
.dropdown("dropdown_id", "Display Name", Arrays.asList("Option1", "Option2"), "Default")
- Назначение: Выбор одного из нескольких вариантов.
- Примеры: Уровень сложности, темы, режимы рендера.
Категории (Organization)
.category("category_id", "Category Name", "Description", category -> category
// Добавляйте опции здесь
)
- Назначение: Логическая группировка настроек.
- Примеры: Группировка связанных опций.
Зачем вообще нужна эта библиотека?
В ванильном Minecraft у модов конфиги обычно лежат в папке config в виде текстовых файлов или JSON. Чтобы поменять настройку, игроку приходится выходить из игры и руками редактировать файл. ModernConfig решает эту проблему: теперь все настройки доступны прямо в игре через красивый экран с анимациями. Это особенно удобно для обычных игроков, которые не хотят разбираться в формате конфигов.
Для разработчиков библиотека предоставляет простой API: вы описываете структуру конфигурации в коде, а ModernConfig сам создаёт интерфейс и сохраняет значения. Не нужно рисовать UI вручную или разбираться в навороченных системах рендера. Всё из коробки.
ModernConfig работает только на Fabric и поддерживает последние версии Майнкрафт. Если вы собираете мод или модпак, обязательно попробуйте эту библиотеку - она сделает ваши настройки красивыми и функциональными. Скачайте ModernConfig и оцените разницу!
