▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/SettingsManagerLib
SettingsManagerLib

SettingsManagerLib

Библиотека для создания конфигурационных меню в Minecraft с помощью YACL и Mod Menu. Упрощает добавление настроек в моды.

Оцените первым
71.2K
4

SettingsManagerLib - это простая библиотека для Майнкрафт, которая берёт на себя всю рутину по созданию конфигурационных меню. Если вы разрабатываете мод и хотите дать игрокам удобные настройки без лишней головной боли - этот инструмент вам пригодится.

Библиотека использует YACL (Yet Another Config Lib) и Mod Menu, чтобы автоматически генерировать экраны настроек. Вам остаётся только объявить параметры - всё остальное сделает SettingsManagerLib.

Важно: сам по себе мод ничего не делает. Это библиотека для других модов.

Возможности

  • Быстрая настройка и подключение
  • Простая интеграция в ваш проект
  • Лёгкий доступ к значениям настроек
  • Автоматическая генерация конфигурационного файла - настройки сохраняются между запусками
  • Встроенный менеджер хромы (chroma) для синхронизации эффектов между файлами
  • Поддержка почти всех полей YACL

Как подключить

Добавьте мод как зависимость

В build.gradle:

repositories {
    maven { url = "https://api.modrinth.com/maven" }
    maven {
        name = "Terraformers"
        url = "https://maven.terraformersmc.com/"}
    maven {
        name 'Xander Maven'
        url 'https://maven.isxander.dev/releases'}
}

dependencies {
    modImplementation("maven.modrinth:settingsmanagerlib:${project.modmenu_version}")
    modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
    modImplementation "dev.isxander:yet-another-config-lib:${project.yacl_version}"
}

В gradle.properties:

settingsmanagerlib_version=LATEST_VERSION_NUMBER (например 1.0.0+1.21.11)
modmenu_version=LATEST_VERSION_NUMBER (например 15.0.0)
yacl_version=LATEST_VERSION_NUMBER (например 3.7.1+1.21.6-fabric)

В fabric.mod.json:

"entrypoints": {
"modmenu": [ "com.example.mod.ModMenuAPI" ]
}

Затем создайте класс ModMenuAPI:

public class ModMenuAPI implements ModMenuApi {
	 @Override
	 public ConfigScreenFactory<?> getModConfigScreenFactory() {
			return parentScreen -> ExampleModClient.settings.getConfig(parentScreen);
	 }
}

Настройка в клиенте

В ExampleModClient:

public static Settings settings;

@Override
public void onInitializeClient() {
	 settings = new Settings().setup("Example Mod", "examplemod");
	 settings.loadFromFile();
}

Добавление настроек

Поддерживаются строки, булевы значения, целые числа, числа с плавающей точкой, цвета и кастомные перечисления.

Стандартные строки/целые/float
@Override
public void onInitializeClient() {
	 settings.add(String settingId, String page, String group, String/int/float defaultValue, String settingName, String description)
	 settings.add("guiName", "Visual Settings", "Overlay", "Default Gui Name", "Gui Scale", "This text will appear as a tooltip when you click on the option.");
}
Ползунки (Integer/Float Sliders)
@Override
public void onInitializeClient() {
	 settings.addSlider(String settingId, String page, String group, int/float defaultValue, String settingName, String description, int/float min, int/float max, int/float step)
	 settings.add("guiScale", "Visual Settings", "Overlay", 1.0f, "Gui Scale", "This text will appear as a tooltip when you click on the option.", 0.5f, 5.0f, 0.1f);
}
Булевы значения
@Override
public void onInitializeClient() {
	 settings.addSlider(String settingId, String page, String group, boolean defaultValue, String settingName, String description, BooleanFormat valueFormat)
	 settings.add("doRenderGui", "Visual Settings", "Overlay", true, "Render Gui", "This text will appear as a tooltip when you click on the option.", BooleanFormat.ONOFF);
}

BooleanFormat определяет отображаемое значение:

  • BooleanFormat.ONOFF - "On" или "Off"
  • BooleanFormat.TRUEFALSE - "True" или "False"
  • BooleanFormat.YESNO - "Yes" или "No"
  • BooleanFormat.TICKBOX - галочка (отмечено/не отмечено)
Цвета
@Override
public void onInitializeClient() {
	 settings.addColor(String settingId, String page, String group, int defaultValue, String settingName, String description)
	 settings.addColor("guiBackgroundColor", "Visual Settings", "Overlay", net.minecraft.util.Colors.GRAY, "Gui Background Color", "This text will appear as a tooltip when you click on the option.");
}
Кастомные Enum Документация скоро появится. Пока можно связаться для подробностей.

Значения настроек автоматически сохраняются после перезапуска клиента. Но не забудьте создать конфигурационное меню внутри onInitializeClient().

Доступ к значениям

Получение значения настройки:

ExampleModClient.settings.get("settingId", typeInstance);
// Примеры:
ExampleModClient.settings.get("doRenderGui", true); // вернёт boolean
ExampleModClient.settings.get("guiBackgroundColor", net.minecraft.util.Colors.GRAY); // цвет
ExampleModClient.settings.get("guiScale", 1.0f); // float
ExampleModClient.settings.get("guiName", "Default Gui Name"); // строка
ExampleModClient.settings.get("guiSliderMin", 1); // целое число

Второй параметр нужен только для указания типа - его значение не используется.

Установка значения вручную:

ExampleModClient.settings.set("settingId", newValue);
ExampleModClient.settings.set("doRenderGui", false); // пример с boolean

По умолчанию значение равно тому, что вы указали при добавлении настройки.

Страницы и группы

Настройки организованы по страницам (вкладки сверху) и группам (сворачиваемые блоки). Можно создать сколько угодно страниц и групп. Каждая настройка обязательно привязана к странице; группа не обязательна - если не нужна, укажите "" или "none".

Зависимости

Для работы библиотеки нужны:

  • YACL
  • Mod Menu
  • Fabric API

Все они доступны на Modrinth и CurseForge.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Клиент

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:10 месяцев назад
Обновлён:4 месяца назад
Главная