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
DefaultPlugins
class.
- 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
private
topublic
. - 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
HEAD
andTAIL
@Inject
s. - "Use at your own risk".
- Added
AsmUtil
.- This includes
mapAnnotationNode()
andmapObjectFromAnnotation()
fromExtendedPlugin
.
- This includes
- Added
of()
methods toTuple
andMutableTuple
. - Fixed
@MixinShouldApply
skipping every second mod. - Updated MixinExtras.
Content
- Split api/impl in content builder.
- Added
ItemGroup
as 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
RecipeBookHelper
have 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
AbstractScreenParticle
are now actually internal. AbstractScreenParticle
no longer contains any display ticking logic.- Removed the multiplication by
0.99
ofParticle
'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 Groups
warning will only get raised iffabric-item-groups-v0
is not present. (<=1.19.2) - RegistryUtil now features
BooleanSupplier
methods.
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
MixpanelAPI
now implements theMixpanel
interface.
Content
FabricEntityTypeBuilder
andFabricBlockEntityTypeBuilder
can now be used inRegistryUtil
. You need to bring your own Fabric API.ItemGroupHelper.InjectEntries
now providesItemGroup.Entries
instead ofItemGroup.EntriesImpl
.- Some constructors in
ContentBuilder
were public. - Reworked
ContentBuilder.ItemGroupBuilder#entries
. - Non-prefixed methods in interfaces will be removed soon.
Danger
- In an act of desperation,
InstrumentationAccess
will try to attach the ByteBuddy agent if the DM agent one fails. InstrumentationAccess
now usesClassLoader#getSystemClassLoader
instead ofFabricLoader.class#getClassLoader
.
Enums
dark_matter$extendEnum
now checks if identical constants exist and returns the old one if that's the case.
Minecraft
NBTUtil
has been renamed toNbtUtil
.NbtUtil
andNbtBuilder
are now part ofminecraft
.NbtUtil#writeInventoryToNbt
andNbtUtil#readInventoryFromNbt
now accept custom keys.
Mirage
- Public instances are available in
Mirage
.FakeWorld
andAlwaysBrightLightmapTextureManager
are 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#createCategory
now only accepts identifiers.- Added
createGroup
toRecipeBookHelper
. - Non-prefixed methods in interfaces will be removed soon.
- Improved search group detection.
- Fixed crashes if a category has no groups.