Fake FabricLoader implementation (isolated from connector?) #142
Replies: 1 comment 8 replies
-
I think I've got just what you're looking for! Forgified Fabric Loader is a Neo implementation of (most) Fabric Loader APIs, including mod metadata (of both Fabric and Neo mods), environment properties (dev/prod status, config dir, game dir, dist and mappings). It can run from inside JiJ as well, and is already used like that in FFAPI. Connector uses shadowjar to include it so that it can be accessed from the SERVICE module layer, but handles disabling JiJ'd versions bundled by other mods to avoid conflicts. The only missing features afaik are entrypoints (which are called by Connector) and environment-specific code stripping. If you're using FFAPI from maven, it should already be pulled in along with its other dependencies. |
Beta Was this translation helpful? Give feedback.
-
I've got a niche use case and would personally benefit from a neo implementation of FabricLoader (config directory, mod metadata, that kind of thing) being taken from connector (where I assume it currently resides) and being implemented into a neo mod, similar to FFAPI. (in my head, this would then get JIJ'd and extended by connector but I'm not familiar with the architecture)
Basically, I've got a neo 1.21 branch of my fabric 1.21 mod, and through FFAPI the diff between the two branches is astronomically low - this means that we can develop features on fabric, merge them for free over to the neo branch, and we have the guaranteed safety of the compiler and mcdev (and therefore, CI) to tell us if something is wrong, rather than full-connector's runtime translation.
The only parts of the actual code (read: not the fmj/toml and buildscript) that change are calls to FabricLoader, and I know there has to be a forgified implementation in connector itself, I just don't know how wired into the rest of connector it is.
It'd be nice to use this individually! If I could make an extra mod() class and set up the init of a fabric ModInitializer from it (so I don't have to touch those either), that'd be even better.
Interested to know the state!
Beta Was this translation helpful? Give feedback.
All reactions