From 995b8b58aa8c890c9181ae479e12a4facfa05a25 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 25 Mar 2021 03:55:36 +0800 Subject: Relocate most of the internal classes to match the api Signed-off-by: shedaniel --- .../shedaniel/rei/fabric/PluginDetectorImpl.java | 57 ++++++++-------------- .../rei/fabric/RoughlyEnoughItemsFabric.java | 2 +- 2 files changed, 22 insertions(+), 37 deletions(-) (limited to 'fabric/src/main/java') diff --git a/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java b/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java index 5f76aa85c..5add038e2 100644 --- a/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java +++ b/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java @@ -24,63 +24,48 @@ package me.shedaniel.rei.fabric; import com.google.common.collect.Iterables; -import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; -import me.shedaniel.rei.api.common.plugins.PluginView; -import me.shedaniel.rei.api.common.plugins.REIPlugin; -import me.shedaniel.rei.api.common.plugins.REIServerPlugin; +import me.shedaniel.rei.api.common.plugins.*; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.loader.api.FabricLoader; +import java.util.function.Consumer; + public class PluginDetectorImpl { - public static void detectServerPlugins() { - for (REIServerPlugin plugin : Iterables.concat( - FabricLoader.getInstance().getEntrypoints("rei_containers", REIServerPlugin.class), - FabricLoader.getInstance().getEntrypoints("rei_server", REIServerPlugin.class) + private static

> void loadPlugin(Class pluginClass, Consumer> consumer) { + for (REIPluginProvider plugin : Iterables.concat( + FabricLoader.getInstance().getEntrypoints("rei_containers", REIPluginProvider.class), + FabricLoader.getInstance().getEntrypoints("rei_server", REIPluginProvider.class), + FabricLoader.getInstance().getEntrypoints("rei", REIPluginProvider.class), + FabricLoader.getInstance().getEntrypoints("rei_common", REIPluginProvider.class), + FabricLoader.getInstance().getEntrypoints("rei_plugins", REIPluginProvider.class), + FabricLoader.getInstance().getEntrypoints("rei_plugins_v0", REIPluginProvider.class) )) { - try { - PluginView.getServerInstance().registerPlugin(plugin); - } catch (Exception e) { - e.printStackTrace(); - RoughlyEnoughItemsCore.LOGGER.error("Can't load REI plugins from %s: %s", plugin.getClass(), e.getLocalizedMessage()); + if (pluginClass.isAssignableFrom(plugin.getPluginProviderClass())) { + consumer.accept((REIPluginProvider

) plugin); } } + } + + public static void detectServerPlugins() { + loadPlugin(REIServerPlugin.class, ((PluginView) PluginManager.getServerInstance())::registerPlugin); if (FabricLoader.getInstance().isModLoaded("libblockattributes-fluids")) { try { - PluginView.getServerInstance().registerPlugin((REIServerPlugin) Class.forName("me.shedaniel.rei.compat.LBASupportPlugin").getConstructor().newInstance()); + PluginView.getServerInstance().registerPlugin((REIServerPlugin) Class.forName("me.shedaniel.rei.impl.common.compat.LBASupportPlugin").getConstructor().newInstance()); } catch (Throwable throwable) { throwable.printStackTrace(); } } } + @SuppressWarnings({"RedundantCast", "rawtypes"}) public static void detectCommonPlugins() { - for (REIPlugin plugin : Iterables.concat( - FabricLoader.getInstance().getEntrypoints("rei_common", REIPlugin.class) - )) { - try { - PluginView.getInstance().registerPlugin(plugin); - } catch (Exception e) { - e.printStackTrace(); - RoughlyEnoughItemsCore.LOGGER.error("Can't load REI plugins from %s: %s", plugin.getClass(), e.getLocalizedMessage()); - } - } + loadPlugin((Class>) (Class) REIPlugin.class, ((PluginView>) PluginManager.getInstance())::registerPlugin); } @Environment(EnvType.CLIENT) public static void detectClientPlugins() { - for (REIClientPlugin plugin : Iterables.concat( - FabricLoader.getInstance().getEntrypoints("rei", REIClientPlugin.class), - FabricLoader.getInstance().getEntrypoints("rei_plugins", REIClientPlugin.class), - FabricLoader.getInstance().getEntrypoints("rei_plugins_v0", REIClientPlugin.class) - )) { - try { - PluginView.getClientInstance().registerPlugin(plugin); - } catch (Exception e) { - e.printStackTrace(); - RoughlyEnoughItemsCore.LOGGER.error("Can't load REI plugins from %s: %s", plugin.getClass(), e.getLocalizedMessage()); - } - } + loadPlugin(REIClientPlugin.class, ((PluginView) PluginManager.getClientInstance())::registerPlugin); } } diff --git a/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsFabric.java b/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsFabric.java index a396c7838..24b74b49d 100644 --- a/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsFabric.java +++ b/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsFabric.java @@ -23,7 +23,7 @@ package me.shedaniel.rei.fabric; -import me.shedaniel.rei.impl.IssuesDetector; +import me.shedaniel.rei.impl.common.util.IssuesDetector; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; import org.apache.logging.log4j.Logger; -- cgit