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.
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
1.6.4
1.6.1–1.6.2
1.5.x
1.4.4–1.4.7
1.4.2
1.3.x
1.2.x
1.1
1.0
Platforms
Fabric
Supported environments
Creators
Details
Licensed LGPL-3.0-only
Published 2 weeks ago
Updated last week