What's new:
Breaking changes for content, analytics and notable for others.
Analytics
- Unique IDs are now generated for each mod separately and are no longer stored in the config.
- You need a ModContainer to generate an instance.
- Removed Decider from Crashlytics.
Base
- Introducing the new and improved
ExtendablePlugin!- This is a successor to
ExtendedPlugin, but with more features! - One of the main feature is plugin support (Plugin-Plugins)
- Default plugins include:
MixinPredicatePlugin,ShouldApplyPlugin,PublicizePlugin. - Only MixinPredicatePlugin is enabled by default.
- Plugins can be added using the inner
DefaultPluginsclass.
- This is a successor to
- Added
@MixinPredicate. Part ofMixinPredicatePlugin- This annotation replaces
@MixinShouldApply. - This also comes with a better version of
@Mod, where you can specify a version predicate.
- This annotation replaces
- Added
@Publicize. Part ofPublicizePlugin- Patches annotated fields and methods from
privatetopublic. - This is meant for static members that need to be accessed from the outside.
- Patches annotated fields and methods from
- Added
@ConstructDummy. Part ofConstructDummyPlugin- If not present, attempts to construct a dummy override of a method.
- This is only meant for
HEADandTAIL@Injects. - "Use at your own risk".
- Added
AsmUtil.- This includes
mapAnnotationNode()andmapObjectFromAnnotation()fromExtendedPlugin.
- This includes
- Added
of()methods toTupleandMutableTuple. - Fixed
@MixinShouldApplyskipping every second mod. - Updated MixinExtras.
Content
- Split api/impl in content builder.
- Added
ItemGroupas a parameter ofAnimatedItemGroup.
Enums
- A debug message is now logged after extending enums.
Glitter
- The passed MatrixStack should be new in less cases. (<1.20)
Minecraft
- ValueTracker gets a facelift!
- Instead of using fields/classes as IDs, we use actual string IDs.
- Now you can track anything with a supplier!
- Reflection is still supported, but wrapped in a supplier.
- You can now add timed trackers that disappear when the timer is up.
- So it should actually be useful now.
Recipe Book
- Methods in
RecipeBookHelperhave been renamed to make more sense and better represent what they do.- Old methods still exist, but are deprecated.
- The singular group parameter has been replaced with varargs.
addToSearchGroup(),registerGroups()andregisterAndAddToSearch()should have overload parity.
- Added
registerAndAddToSearch()toRecipeBookHelper. Saves one line! - Duplicate groups should now be handled better.
What's new:
Important changes for Glitter.
The mod now provides Forge-style mod IDs. So, you can use either dark-matter-content or dark_matter_content.
Glitter
tickLogic()is being replaced bytick().-
- In later versions
tick()will become abstract.
- In later versions
- Internal methods in
AbstractScreenParticleare now actually internal. AbstractScreenParticleno longer contains any display ticking logic.- Removed the multiplication by
0.99ofParticle's velocity. - Screen-bounded particles will no longer flicker for a frame after their screen was closed.
Content
- The
Building {x} ItemGroup without Fabric Item Groupswarning will only get raised iffabric-item-groups-v0is not present. (<=1.19.2) - RegistryUtil now features
BooleanSuppliermethods.
What's new:
Major breaking changes!!!
Split API/Impl in all modules. A lot of package changes.
Almost all classes in impl are @ApiStatus.Internal and should not be worked with.
Analytics
MixpanelAPInow implements theMixpanelinterface.
Content
FabricEntityTypeBuilderandFabricBlockEntityTypeBuildercan now be used inRegistryUtil. You need to bring your own Fabric API.ItemGroupHelper.InjectEntriesnow providesItemGroup.Entriesinstead ofItemGroup.EntriesImpl.- Some constructors in
ContentBuilderwere public. - Reworked
ContentBuilder.ItemGroupBuilder#entries. - Non-prefixed methods in interfaces will be removed soon.
Danger
- In an act of desperation,
InstrumentationAccesswill try to attach the ByteBuddy agent if the DM agent one fails. InstrumentationAccessnow usesClassLoader#getSystemClassLoaderinstead ofFabricLoader.class#getClassLoader.
Enums
dark_matter$extendEnumnow checks if identical constants exist and returns the old one if that's the case.
Minecraft
NBTUtilhas been renamed toNbtUtil.NbtUtilandNbtBuilderare now part ofminecraft.NbtUtil#writeInventoryToNbtandNbtUtil#readInventoryFromNbtnow accept custom keys.
Mirage
- Public instances are available in
Mirage.FakeWorldandAlwaysBrightLightmapTextureManagerare now in impl. - The init mixin is no longer required.
-
- The game will hang for a while if this mixin is not applied.
Glitter
- Particles no longer wait for resource init before ticking.
- Moved VanillaParticle to
impl. - VanillaParticle should now work on Connector.
Recipe Book
RecipeBookHelper#createCategorynow only accepts identifiers.- Added
createGrouptoRecipeBookHelper. - Non-prefixed methods in interfaces will be removed soon.
- Improved search group detection.
- Fixed crashes if a category has no groups.



