I am wondering, from where one is supposed to call the methods in IJERAPI (on forge). I was thinking:
IJERPlugin#receive: Doesn't work due to #452 and is also extremely limiting as it's impossible to react to loaded datapacks and similar things.
registerCategories from a JEI plugin: Only works sometimes, depending on the plugin order. But even if it works, it will duplicate the entries when JEI reloads. The same is true for any other entry point from a JEI plugin.
So my suggestion is to add a callback into the IJERPlugin that is called on every JEI startup when CommonProxy.initCompatibility() runs. The API could then instantly commit into the actual registries and addon mods can react to datapacks. Also JER could then easily pass the IJeiHelpers to its plugins, which could potentially be useful for some plugins.
I am wondering, from where one is supposed to call the methods in
IJERAPI
(on forge). I was thinking:IJERPlugin#receive
: Doesn't work due to #452 and is also extremely limiting as it's impossible to react to loaded datapacks and similar things.registerCategories
from a JEI plugin: Only works sometimes, depending on the plugin order. But even if it works, it will duplicate the entries when JEI reloads. The same is true for any other entry point from a JEI plugin.So my suggestion is to add a callback into the
IJERPlugin
that is called on every JEI startup whenCommonProxy.initCompatibility()
runs. The API could then instantly commit into the actual registries and addon mods can react to datapacks. Also JER could then easily pass theIJeiHelpers
to its plugins, which could potentially be useful for some plugins.