B-Utils

B-Utils

Mod

A modding utility that provides reusable components for configuration files, command systems, and user interfaces

Server LibraryTechnologyUtility

349 downloads
2 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

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.


Project members

Hysocs

Member

Details

Licensed LGPL-3.0-only
Published 19 days ago
Updated 16 hours ago