diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java new file mode 100644 index 000000000..d3ff98686 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java @@ -0,0 +1,31 @@ +package me.shedaniel.rei; + +import info.tehnut.pluginloader.LoaderCreator; +import info.tehnut.pluginloader.PluginLoaderBuilder; +import info.tehnut.pluginloader.ValidationStrategy; +import me.shedaniel.rei.api.IRecipePlugin; +import net.fabricmc.loader.language.LanguageAdapter; +import net.fabricmc.loader.language.LanguageAdapterException; +import net.minecraft.util.Identifier; + +public class RoughlyEnoughItemsPlugins implements LoaderCreator { + + @Override + public void createLoaders() { + LanguageAdapter.Options instantiationOptions = new LanguageAdapter.Options(); + + new PluginLoaderBuilder("roughlyenoughitems") + .withValidator(ValidationStrategy.hasInterface(IRecipePlugin.class)) + .withInitializer((aClass, container) -> { + Identifier id = new Identifier(container.getOwner().getInfo().getId(), container.getInfo().getId()); + try { + IRecipePlugin plugin = (IRecipePlugin) container.getOwner().getAdapter().createInstance(aClass, instantiationOptions); + RoughlyEnoughItemsCore.registerPlugin(id, plugin); + RoughlyEnoughItemsCore.LOGGER.info("Registered plugin %s from %s", id, aClass); + } catch (LanguageAdapterException e) { + RoughlyEnoughItemsCore.LOGGER.error("Error loading plugin %s", id, e); + } + }) + .build(); + } +} |
