[FAPI 0.86] RegistryLoaderMixin is overwriting Registry Path
quiqueck opened this issue ยท 5 comments
This mixing is changing the path for every, non vanilla Registry. Even if a Registry is not managed with DynamicRegistries
:
The results in registries not getting loaded (quiqueck/BetterEnd#273)
Hmmm, the problem here is that some mods were registering dynamic registries in non-API ways, and without prepending the path. We can indeed check if the dynamic registry was registered via FAPI for now.
I am not 100% sure, but I think that FabricDynamicRegistryProvider
is not using the changed paths to serialise the registry content:
I think it is just reading the unchanged Identifier-Path
First off, I like the general idea of the change, and I was (obviously) not aware of a previous API to add custom, dynamic registries. But did that old API auto prefix the Mod Id, because if it does not, and the Registry was previously manually prefixed with the mod id, it would have two prefixes in the new version...
This is just my personal take on this, but as this change alters the registry paths between versions this is prone to cause soft fails (in our case, the surface rules are no longer loaded). It will also invalidate some data packs that did target our registries.
I have created a PR to fix this, the current "broken" build is still marked as beta, and I expect to keep it this way.