2.3.0
Added
- Added a New Version Warning screen!
- Do you release your mods as Alphas/Snapshots, feel free to use this new system and warn your users about it!!!
- More Info on: Wiki
Changed
getRandomVariant()
will never returnnull
anymore!- Completely Rewrote the
PityRandom
to allow for every type of class(T) in stead of only Doubles. (Still Experimental)
Bug Fixes
- Fixed PacketsRegistry from randomly deciding to crash without any reason.
2.2.0
Requires NeoForge: 21.1.181
or higher
Added
- Annotated every method in the codebase with relevant annotations (
@NotNull
,@Nullable
,@Experimental
,@Internal
,@OverrideOnly
) - Developers can now manually exclude custom mods in the
LoadedModsEvent
- Moved
ReloadHandler
to the common package for shared access
Changed
- All dependencies updated to latest versions
- Set "Thank You" event priority to lowest (NeoForge only)
Variant Loader
-
Fully rewritten and modernized the Variant Loader
-
Introduced performance improvements like smarter caching and new utility methods
-
Switched from
String
toResourceLocation
for saving entity identifiers- Allows multiple mods to use the Variant Loader without name conflicts
-
Replaced
getVariantName()
andsetVariantName()
default interface methods (which relied on unstable casting toIVariantAccessor
)- New generic interface:
IVariantEntity<T>
- Entities now implement
IVariantEntity<YourClass>
and overridegetEntity()
to returnthis
@Override public @NotNull YourEntityClass getEntity() { return this; }
- This change improves type safety and eliminates the need to implement
get/setVariantName()
manually
- New generic interface:
Fixed
- Fixed crash when Scheduler failed to load without Variant Loader
- Made blue logging text lighter and easier to read
- Logging now works correctly when enabled in config
- Corrected a language inconsistency in the "Mods Loaded" message
- "Thank You" message now shows after loading is complete
- Resolved conflict where Minecraft reported a duplicate packet registration
2.1.0
Added
Datapack Driven Brewing Stand Recipe's
- Added a way for Users to add new Recipes to Minecrafts Brewing Stand using Datapacks!
- Provided Build in JEI Support into Vanilla Brewing Stand Recipes
- Remained Compatible with hardcoded Recipes!
Bug Fixes
- Rejoining a Fabric World doesnt crash due to Configs anymore
This version brings Breaking Changes.
Updating might make your mod incompatible with previous versions of the Library.
2.0.0
Added
Variant Loader
- Added a fallback variant parameter to getParameterDataFromVariant, allowing shared data to be centralized in a single JSON instead of duplicating it per variant.
- Reworked the entire Loading system to have the Events on the Library side and allow Developers to just inject the path and entities.
- Instead of handling everything themself.
- All Developers can now remove their
ReloadHandler
since it became redundant and has been replaced with a way cleaner and more optimized system. - For more details, visit the Wiki.
onReload
has been modified toonDatapackSync
.
Logging
- Added a new
/log
command accessible to users with a permission level of 3 or higher (/op
).- This command opens an in-game menu displaying console logs, allowing developers to monitor output directly without needing terminal access.
- Supports log levels with color-coded formatting for easier readability.
isLoggingEnabled
has been moved to a server sided config.- All Logging is now translatable through Minecrafts Component System!
- Added a ton more ways to Log stuff to match the
slf4j
system.
Network Handler
- Introduced a streamlined network registration system.
- Simplifies the use of custom packets by automatically handling registration internally via BlueLib.
- Packet definitions and handlers are now separated into two distinct classes for better structure and maintainability.
- For more details, visit the Wiki.
Packets
Variant Data Synchronization
AllDataPacket
– Sends aMap<String, JsonObject>
containing all variant data from the server to the client.ParameterDataPacket
– Sends specific parameter data for a given variant as aJsonElement
.VariantsPacket
– Sends aSet<String>
representing all available variant identifiers for an entity. :warning: These packets are not registered by default; they must be registered on the S2C side, with the handler provided as a lambda defining the logic to execute when the packet is received.:warning:
Changed
onReload
has been modified toonDatapackSync
.
Bug Fixes
- Cleaned up all of the Logging we had in place.
Deleted
- Removed
IVariantEntityBase
since it has become redundant!
This version brings Breaking Changes.
Updating might make your mod incompatible with previous versions of the Library.
2.0.0
Added
Variant Loader
- Added a fallback variant parameter to getParameterDataFromVariant, allowing shared data to be centralized in a single JSON instead of duplicating it per variant.
- Reworked the entire Loading system to have the Events on the Library side and allow Developers to just inject the path and entities.
- Instead of handling everything themself.
- All Developers can now remove their
ReloadHandler
since it became redundant and has been replaced with a way cleaner and more optimized system. - For more details, visit the Wiki.
onReload
has been modified toonDatapackSync
.
Logging
- Added a new
/log
command accessible to users with a permission level of 3 or higher (/op
).- This command opens an in-game menu displaying console logs, allowing developers to monitor output directly without needing terminal access.
- Supports log levels with color-coded formatting for easier readability.
isLoggingEnabled
has been moved to a server sided config.- All Logging is now translatable through Minecrafts Component System!
- Added a ton more ways to Log stuff to match the
slf4j
system.
Network Handler
- Introduced a streamlined network registration system.
- Simplifies the use of custom packets by automatically handling registration internally via BlueLib.
- Packet definitions and handlers are now separated into two distinct classes for better structure and maintainability.
- For more details, visit the Wiki.
Packets
Variant Data Synchronization
AllDataPacket
– Sends aMap<String, JsonObject>
containing all variant data from the server to the client.ParameterDataPacket
– Sends specific parameter data for a given variant as aJsonElement
.VariantsPacket
– Sends aSet<String>
representing all available variant identifiers for an entity. ⚠️ These packets are not registered by default; they must be registered on the S2C side, with the handler provided as a lambda defining the logic to execute when the packet is received.⚠️
Changed
onReload
has been modified toonDatapackSync
.
Bug Fixes
- Cleaned up all of the Logging we had in place.
Deleted
- Removed
IVariantEntityBase
since it has become redundant!
This version brings Breaking Changes.
Reworked the Structure of the mod, some files changed location and need to be re-imported.
1.9.0
Added
Events
-
ModLoadedEvent
- Triggered during game startup when BlueLib is loaded.
- Called once for each mod found in the mods folder (excluding BlueLib itself).
- Provides detailed metadata for the respective mod.
-
AllModsLoadedEvent
- Triggered during startup after scanning all external mods (excluding BlueLib).
- Provides a list of all loaded mod metadata.
- Returns
null
if no other mods are loaded besides BlueLib.
-
VariantLoadedEvent
Called when a variant is loaded.- Pre (NeoForge) / ALLOW_VARIANT_TO_LOAD (Fabric)
Fired before loading the variant.
Can be cancelled to prevent loading. - Post (NeoForge) / POST (Fabric)
Fired after the variant has loaded.
Cannot be cancelled.
- Pre (NeoForge) / ALLOW_VARIANT_TO_LOAD (Fabric)
-
AllVariantsLoadedEvent
Called when all variants are loaded.- Pre (NeoForge) / ALLOW_ALL_VARIANTS_TO_LOAD (Fabric)
Fired before loading all variants.
Can be cancelled to prevent loading. - Post (NeoForge) / POST (Fabric)
Fired after all variants have loaded.
Cannot be cancelled.
- Pre (NeoForge) / ALLOW_ALL_VARIANTS_TO_LOAD (Fabric)
-
Added a Config Builder
- Due to NeoForge having their own Config System
- We decided to connect NeoForges build in Config System into our new Fabric Config System so even the Multi Loader only needs to make 1 Config System.
- We even made Server Only Config for Fabric
-
Added a Config for various systems, including Markdown.
Changed
- Reworked the entire Markdown Enabling/Disabling by migrating it to a Server Sided Config.
- Reworked the Markdown Prefix/Suffixes by migrating it to a Server Sided Config.
- Refactored a lot of the packages as preperations to 2.0
Deleted
- Removed the previously added EntityStateManager since it did not interact with Minecrafts system.
1.8.0 1.21.4-1.21.5
Added
- Support for 1.21.5
Updated
- Updated Fabric to:
- 0.120.0+1.21.5
- Updated Neoforge to:
- 21.5.40-beta
Bug Fixes
- Fixed an issue where the first Color in the Color Markdown sequence didnt get parsed.
Deleted
- Since the Removal of the @GameTest Annotation, the Game Tests have been removed
- For Now