/ukulib

small utility library used in my mods

Primary LanguageJavaMozilla Public License 2.0MPL-2.0

banner

Maven metadata URL Javadoc badge Code Climate maintainability CodeFactor Grade

The coolest fabric library mod on the internet, which has 0 (zero) dependencies.
Javadoc can be found here for the latest version, or at https://maven.uku3lig.net/javadoc/releases/net/uku3lig/ukulib/VERSION for older versions.

Features

  • A simple yet powerful config system, which also provides utilities for config screens.
  • Only this for now... but more will come soon™️ ! (ideas and feedback are appreciated :D)

How to use

Add the following to your gradle.properties (see above shield or the maven repo for version info):

# https://github.com/uku3lig/ukulib
ukulib_version=...

build.gradle:

repositories {
    maven {
        url "https://maven.uku3lig.net/releases"
    }
}

dependencies {
    modApi "net.uku3lig:ukulib:${project.ukulib_version}"

    // you can also include it directly if you don't want your users to download it
    include "net.uku3lig:ukulib:${project.ukulib_version}"
}
Development versions

GitHub Workflow Status Maven metadata URL

Development version numbers end with -build.<build number>, e.g. 0.2.2+1.19.2-build.65.
They are not guaranteed to be stable or even work at all, but they are available if you want to test the latest changes.
They are also not published to the maven repo, so you have to add the following to your build.gradle:

repositories {
    maven {
        url "https://maven.uku3lig.net/snapshots"
    }
}

Integrating your config screen

Ukulib provides an api class, UkulibAPI, which you can extend to integrate your mod's config screen with ukulib. Example:

public class YourUkulibAPIClass implements UkulibAPI {
    @Override
    public Function<Screen, AbstractConfigScreen<?>> supplyConfigScreen() {
        return parent -> new YourConfigScreen(parent, ...);
    }
}

You then need to add the ukulib entrypoint in your fabric.mod.json:

"entrypoints": {
    ...
    "ukulib": [
      "your.awesome.mod.YourUkulibAPIClass"
    ]
  }

Sponsors

Massive thanks to Tuta for their support!