Перейти к содержимому
Mineforgian

BlossomBridge API

A small API for Tywrap Studios Mods, that adds a few minor things.

Загрузки
563
Подписчики
0
Обновлён
5 августа 2025 г.
Лицензия
MIT

Опубликован 29 ноября 2024 г.

BlossomBridge

A small API for Tywrap Studios Mods, that adds a few minor things.


Since version 2.1.0 of BBAPI (which is currently only available as a master-SNAPSHOT), it is suggested to bundle the API with your project instead of depending on this mod, and depending on Fabric Language Kotlin instead. As such, the maximum downloadable version you will find on this page is 2.0.2. We will no longer release this as a mod jar to keep compatibility as high as possible.

For developers: please read our 2.1.0 update docs as soon as it becomes available for more information on how to update your BBAPI version correctly, then follow the update docs subsequently until you reach the latest version. Happy days!


Such As:

  • A fletched Config system utilizing Jankson and some logic magic.
  • A simple, yet niche Logging system, to maintain a consistent log format for all our mods.
  • Good JavaDocs, so you can actually properly understand the code.

For Devs:

Project Setup

Want to use this API in your mod?
Feel free to! But keep in mind that a lot of stuff in here is specific to our workflows, so it may not be applicable to your use case.
Plus, the code is pretty minimal the moment, so it's not really worth it half the time.

Gradle Setup

BlossomBridge can easily be depended on like any other Fabric mod.
Just add the following to your build.gradle file:

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    // Other dependencies...
    
	modImplementation("com.github.Tywrap-Studios:BlossomBridge:${project.blossombridge_version}")
}

And you add this to your gradle.properties file:

blossombridge_version="1.1.1"
# Or whatever version you want to use :)

it is always recommended to use the latest STABLE version, so you don't get any unexpected hiccups of WIP features.
Last but not least, you need to add the following to your fabric.mod.json file:

{
    "depends": {
        "blossombridge": "1.1.1"
    }
}

Mod Setup

Once you've added the mod to your project, you can start using it!
All the code is well documented using JavaDoc, so you should be able to figure out how to use it.

But as a general line of thumb, you do the following: Make a Config class that extends AbstractConfig, and then you can make a new ConfigManager to load and use it. Alongside that, also construct a LoggingHandler and you're good to go!

Do not use the BlossomBridge class! Matter of fact, don't use anything from the main package!
ANYTHING IN THE main PACKAGE IS NOT PART OF THE API, AND IS INSTEAD FOR THE ACTUAL "MOD" PART OF THE CODE!
Everything that is api is inside the api package (of course)

As an example, I suggest taking a look at Constructra, which has a lot of this API's code implemented and used.

Ченджлог

2.0.2Релиз1.21.6, 1.21.7, 1.21.8 · 5 августа 2025 г.

As of 2.0.0, the mod is coded in Kotlin, and the following patches were applied:

Changes (2.0.0):

  1. Changed codebase to Kotlin.
  2. Made LoggingHandler.literalDebug() always ignore config.
  3. Made ConfigManager.loadConfig() also run saveConfig() after validation.
  4. Removed main package in favor of a very plain ModInitializer object.
  5. AbstractConfigClass -> BasicConfigClass (Renamed)
  6. net.tywrapstudios.blossombridge -> org.tywrapstudios.blossombridge (Renamed)

Changes (2.0.1):

  1. Wrongly formatted MC version dependency in fabric.mod.json.
  2. ConfigManager.getConfig() is not null safe, while it used to be before the Kotlin rewrite. (oh the irony)

Changes (2.0.2):

  1. The Kotlin BasicConfigClass isn't serializable or something by Jankson, so it was replaced with a Java class.
1.1.1Релиз1.21.6, 1.21.7, 1.21.8 · 10 декабря 2024 г.

THIS VERSION HAS BREAKING CHANGES.
PLEASE CHECK YOUR VERSIONS AND IMPLEMENTATIONS.

  • Fix LoggingHandlers config logic not falling in-line with reloads. Aka, they didn't actually fetch the configInstance, but instead just grabbed the values directly.
  • Actual support for 1.19.2+ is now added.
    • After some testing I found out that the fabric.mod.json isn't the only place you define whether this mod works on any version.

Комментарии

Загружаем…