Loader 0.4.0 and the winds of Spring
I know blog posts (and development) has slowed down recently. I suppose it is fair to attribute this to a burnout on my - asie’s, that is - side. Keeping up a consistent development pace on a hobby project is very difficult, and it appears I reached my breaking point for a while.
However, today I have finally dusted off old changes and am ready to release the not-perfect-but-nonetheless-good Loader 0.4.0.
The changes are numerous, but include:
- New, formalized mod metadata schema format!
- Now with a proper modder-side API!
- Actual versioning and dependency resolution!
- More powerful entrypoint system to replace initiailizers! Provide static fields and even method handles!
- Nested JARs, cooperating with said dependency resolution to allow you to provide any dependency you want - leave the rest to the mod loader!
- Support for a lot of Minecraft versions. For now, we support:
- All vanilla client and server versions, from 0.0.11 all the way to 19w14b - and beyond!
- All versions of Risguami’s ModLoader*,
- Versions of Forge for 1.2.5 and below*.
- Mixin reference maps are now remapped at runtime in development environment dependencies.
- This removes a bunch of Loom-side hackery, and finally fixes Accessor/Invoker support in this scenario!
- Major refactors in Knot, our default class loader.
- Stub providing of Package/CodeSource objects - fixing a few crashes here and there.
- The server .JAR filename is now stored in a properties file - this is useful for better interop with many existing server hosting systems.
Please note that the ModLoader/Forge support (a) requires enabling a flag for a “compatibility” class loader mode, (b) does not yet allow you to mixin non-Fabric mods themselves. However, it does work on Java 9+!
As for mod compatibility, most mods should work just fine - there is a decent amount of 0.3.x compatibility. However, there are some exceptions we’re aware of:
- Mod Menu may run into issues during gameplay, but basic functionality works fine.
- plugin-loader does not work with 0.4.x! Disable it in your instance and encourage your local mod author to adopt entrypoints in its place - they’re as good if not better.
With regards to modders, there are some scribbled notes on updating to Loader 0.4.x right here.
I hope you will enjoy the new, long-awaited features in Loader! What’s coming next?
- Loom 0.3.0 is still being worked on. It probably won’t come out in a day or two, but should be out soon-ish. As a stop-gap, Loom 0.2.1 is being worked on by modmuss50 to add nested JAR functionality to your existing development environments.
- There is renewed debate and implementation work on the configuration system. Hopefully, it will make it to Loader 0.5.0.
- There are discussions on the future of Fabric’s API component - nothing concrete to announce as of yet. We are aware of its mild stagnation, don’t worry!
PS. How’s Yarn doing?
Type | Yarn 19w07a.13 | Yarn 19w14b.4 | Total Change |
---|---|---|---|
Classes | 90.99% | 94.23% | +3.24% |
Fields | 74.53% | 82.33% | +7.80% |
Methods | 70.85% | 73.26% | +2.41% |