diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-25 03:55:36 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-25 03:55:36 +0800 |
| commit | 995b8b58aa8c890c9181ae479e12a4facfa05a25 (patch) | |
| tree | a16149371fc4b69a73e2ab13e2d96cd2c324b43a /fabric/src/main/java/me | |
| parent | a34a748d2b6cdb1f70f176f1ec1bd27cbc2a98cf (diff) | |
| download | RoughlyEnoughItems-995b8b58aa8c890c9181ae479e12a4facfa05a25.tar.gz RoughlyEnoughItems-995b8b58aa8c890c9181ae479e12a4facfa05a25.tar.bz2 RoughlyEnoughItems-995b8b58aa8c890c9181ae479e12a4facfa05a25.zip | |
Relocate most of the internal classes to match the api
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'fabric/src/main/java/me')
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java | 57 | ||||
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsFabric.java | 2 |
2 files changed, 22 insertions, 37 deletions
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 <P extends REIPlugin<?>> void loadPlugin(Class<? extends P> pluginClass, Consumer<? super REIPluginProvider<P>> 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<P>) plugin); } } + } + + public static void detectServerPlugins() { + loadPlugin(REIServerPlugin.class, ((PluginView<REIServerPlugin>) 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<? extends REIPlugin<?>>) (Class) REIPlugin.class, ((PluginView<REIPlugin<?>>) 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<REIClientPlugin>) 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; |
