Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19
1.18
1.17
1.16
Platforms
Fabric
Supported environments
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Licensed LGPL-3.0-only
Published 3 days ago
Updated 4 days ago
BlanketUtils
Note: If you're seeing this as a dependency requirement for another mod, you can simply install it and ignore this documentation.
BlanketUtils 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 BlanketUtils is available on GitHub: BlanketUtils Repository
Adding to Your Project
Add this to your build.gradle.kts
:
dependencies {
modCompileOnly(files("libs/blanketutils-1.0.0.jar"))
}
Make sure to place the BlanketUtils JAR file in your project's libs
directory.