E-Utils
Активный0.0
Установок
Последнее обновление
Версии
E-Utils: Вспомогательная библиотека для разработки модов
Утилита для разработчиков модов на Fabric, которая предоставляет готовые решения для типичных задач:
- Управление файлами конфигурации с возможностью перезагрузки без перезапуска
- Система команд с обработкой разрешений
- Фреймворк для создания инвентарных интерфейсов
- Дополнительные полезные функции и расширения
Основные возможности
Конфигурационные файлы
Настройки поддерживают JSONC формат с комментариями, автоматическое обновление версий, отслеживание изменений в реальном времени и удобную работу с типами данных через Kotlin классы.
Пример настроек:
data class MyConfig(
override val version: String = "1.0.0",
override val configId: String = "mymod"
// Добавьте свои параметры здесь
) : ConfigData
Инициализация менеджера:
val configManager = ConfigManager(
currentVersion = "1.0.0",
defaultConfig = MyConfig(),
configClass = MyConfig::class
)
Система команд
Гибкий конструктор команд с базовой обработкой прав доступа, поддержкой подкоманд и псевдонимов.
commandManager.command("mycommand", permission = "mymod.command") {
executes { context ->
// Логика команды
1
}
subcommand("subcommand") {
executes { context ->
// Логика подкоманды
1
}
}
}
UI компоненты
Простое создание пользовательских инвентарных интерфейсов с кнопками, активными слотами и динамическим обновлением содержимого.
CustomGui.openGui(
player = player,
title = "Мой интерфейс",
layout = listOf(/ Элементы интерфейса /),
onInteract = { context ->
// Обработка взаимодействий
}
)
Технические требования
Для работы требуются:
- Kotlin
- Fabric API
- Fabric Language Kotlin
Примеры использования
Настройки конфигурации:
data class MyConfig(
override val version: String = "1.0.0",
override val configId: String = "mymod",
var debugMode: Boolean = false
) : ConfigData
val configManager = ConfigManager(
currentVersion = "1.0.0",
defaultConfig = MyConfig(),
configClass = MyConfig::class,
metadata = ConfigMetadata(
headerComments = listOf("Настройки моего мода")
)
)
Регистрация команд:
val commandManager = CommandManager("mymod")
commandManager.command("hello", permission = "mymod.hello") {
executes { context ->
val source = context.source
CommandManager.sendSuccess(source, "Привет, Мир!")
1
}
}
Создание интерфейса:
CustomGui.openGui(
player = player,
title = "Мой GUI",
layout = listOf(
CustomGui.createNormalButton(
ItemStack(Items.DIAMOND),
"Нажми меня!",
listOf("Описание кнопки")
)
),
onInteract = { context ->
// Обработка кликов по кнопкам
}
)