EverlastingUtils
Примечание: Если вы видите это как зависимость или требование для другого мода, вы можете просто установить его и игнорировать эту документацию.
EverlastingUtils — это библиотека утилит для разработки модов на Fabric. Она предоставляет реализации общих функций, которые разработчикам модов часто требуется реализовывать:
- Управление конфигурацией с перезагрузкой во время выполнения
- Регистрация команд с обработкой разрешений
- Фреймворк для инвентарных GUI
- Вспомогательные функции и расширения
Для разработчиков модов, желающих использовать эту библиотеку, продолжайте чтение ниже.
Возможности
Управление конфигурацией
- Конфигурация JSONC с поддержкой комментариев
- Автоматическая миграция и резервное копирование конфигурации
- Отслеживание файлов и горячая перезагрузка
- Типобезопасная обработка конфигурации с использованием data-классов Kotlin
data class MyConfig(
override val version: String = "1.0.0",
override val configId: String = "mymod"
// Your config properties here
) : ConfigData
val configManager = ConfigManager(
currentVersion = "1.0.0",
defaultConfig = MyConfig(),
configClass = MyConfig::class
)
Расширенная система команд
- Fluent API для построения команд
- Встроенная обработка разрешений
- Поддержка подкоманд
- Поддержка алиасов
commandManager.command("mycommand", permission = "mymod.command") {
executes { context ->
// Command logic
1
}
subcommand("subcommand") {
executes { context ->
// Subcommand logic
1
}
}
}
Фреймворк GUI
- Простое создание инвентарных GUI
- Поддержка пользовательских кнопок
- Обработка интерактивных слотов
- Динамическое обновление содержимого
CustomGui.openGui(
player = player,
title = "My GUI",
layout = listOf(/* GUI items */),
onInteract = { context ->
// Handle interactions
}
)
Зависимости
- Kotlin
- Fabric API
- Fabric Language Kotlin
Установка
Добавьте в ваш build.gradle.kts
:
dependencies {
modImplementation "curse.maven:e-utils-1275646:6588136"
}
Примеры использования
Управление конфигурацией
// Create a config
data class MyConfig(
override val version: String = "1.0.0",
override val configId: String = "mymod",
var debugMode: Boolean = false
) : ConfigData
// Initialize manager
val configManager = ConfigManager(
currentVersion = "1.0.0",
defaultConfig = MyConfig(),
configClass = MyConfig::class,
metadata = ConfigMetadata(
headerComments = listOf("My mod configuration")
)
)
// Access config
val currentConfig = configManager.getCurrentConfig()
Регистрация команд
val commandManager = CommandManager("mymod")
commandManager.command("hello", permission = "mymod.hello") {
executes { context ->
val source = context.source
CommandManager.sendSuccess(source, "Hello, World!")
1
}
}
Создание GUI
CustomGui.openGui(
player = player,
title = "My GUI",
layout = listOf(
CustomGui.createNormalButton(
ItemStack(Items.DIAMOND),
"Click Me!",
listOf("Button Description")
)
),
onInteract = { context ->
// Handle button clicks
}
)