Compatibility
Minecraft: Java Edition
Platforms
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
EverlastingUtils
Note: If you're seeing this as a dependency requirement for another mod, you can simply install it and ignore this documentation.
Also if you arent using the latest versions of my mods that require this download the 1.0.2 version
EverlastingUtils is a utility library for Fabric mod development. It provides implementations for common features that mod developers frequently need to implement:
- Configuration management with runtime reloading
- Command registration with permission handling
- Inventory GUI framework
- Utility functions and extensions
For mod developers looking to use this library, continue reading below.
Features
Config Management
- JSONC configuration with comments support
- Automatic config migration and backup
- File watching and hot reloading
- Type-safe config handling with Kotlin data classes
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
)
Enhanced Command System
- Fluent command builder API
- Built-in permission handling
- Subcommand support
- Alias support
commandManager.command("mycommand", permission = "mymod.command") {
executes { context ->
// Command logic
1
}
subcommand("subcommand") {
executes { context ->
// Subcommand logic
1
}
}
}
GUI Framework
- Simple inventory GUI creation
- Custom button support
- Interactive slot handling
- Dynamic content updates
CustomGui.openGui(
player = player,
title = "My GUI",
layout = listOf(/* GUI items */),
onInteract = { context ->
// Handle interactions
}
)
Dependencies
- Kotlin
- Fabric API
- Fabric Language Kotlin
Installation
Add to your build.gradle.kts
:
dependencies {
modImplementation("com.username:blanketutils:1.0.0")
}
Usage Examples
Config Management
// 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()
Command Registration
val commandManager = CommandManager("mymod")
commandManager.command("hello", permission = "mymod.hello") {
executes { context ->
val source = context.source
CommandManager.sendSuccess(source, "Hello, World!")
1
}
}
GUI Creation
CustomGui.openGui(
player = player,
title = "My GUI",
layout = listOf(
CustomGui.createNormalButton(
ItemStack(Items.DIAMOND),
"Click Me!",
listOf("Button Description")
)
),
onInteract = { context ->
// Handle button clicks
}
)
Contributing
Contributions are welcome! Feel free to submit issues and pull requests.
Source Code & Development
The complete source code for EverlastingUtils is available on GitHub: EverlastingUtils Repository
Adding to Your Project
Add this to your build.gradle.kts
:
dependencies {
modCompileOnly(files("libs/everlastingutils-1.0.0.jar"))
}
Make sure to place the EverlastingUtils JAR file in your project's libs
directory.