From 966bbd7fe43237f9b1aa6cfd94cf5e34a9bcfddf Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 6 Apr 2021 15:47:20 +0800 Subject: Expose draggable stacks Signed-off-by: shedaniel --- .../me/shedaniel/rei/forge/PluginDetectorImpl.java | 35 ++++++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'forge/src/main/java/me/shedaniel') diff --git a/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java b/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java index 40bc41a49..733aaa0f2 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java @@ -39,31 +39,54 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.function.BiConsumer; import java.util.function.Supplier; public class PluginDetectorImpl { + private static

> REIPluginProvider

wrapPlugin(List modId, REIPluginProvider

plugin) { + return new REIPluginProvider

() { + String nameSuffix = " [" + String.join(", ", modId) + "]"; + + @Override + public Collection

provide() { + return plugin.provide(); + } + + @Override + public Class

getPluginProviderClass() { + return plugin.getPluginProviderClass(); + } + + @Override + public String getPluginProviderName() { + return plugin.getPluginProviderName() + nameSuffix; + } + }; + } + public static void detectServerPlugins() { - PluginView.getServerInstance().registerPlugin(new DefaultPlugin()); + PluginView.getServerInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultPlugin())); RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIServerPlugin.class::isAssignableFrom, (modId, plugin) -> { - ((PluginView) PluginManager.getServerInstance()).registerPlugin(plugin); + ((PluginView) PluginManager.getServerInstance()).registerPlugin(wrapPlugin(modId, plugin)); }); } public static void detectCommonPlugins() { EventBuses.registerModEventBus("roughlyenoughitems", FMLJavaModLoadingContext.get().getModEventBus()); RoughlyEnoughItemsForge.>scanAnnotation(REIPlugin.class, me.shedaniel.rei.api.common.plugins.REIPlugin.class::isAssignableFrom, (modId, plugin) -> { - ((PluginView) PluginManager.getInstance()).registerPlugin(plugin); + ((PluginView) PluginManager.getInstance()).registerPlugin(wrapPlugin(modId, plugin)); }); } @OnlyIn(Dist.CLIENT) public static void detectClientPlugins() { - PluginView.getClientInstance().registerPlugin(new DefaultClientPlugin()); - PluginView.getClientInstance().registerPlugin(new DefaultClientRuntimePlugin()); + PluginView.getClientInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultClientPlugin())); + PluginView.getClientInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultClientRuntimePlugin())); RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIClientPlugin.class::isAssignableFrom, (modId, plugin) -> { - ((PluginView) PluginManager.getClientInstance()).registerPlugin(plugin); + ((PluginView) PluginManager.getClientInstance()).registerPlugin(wrapPlugin(modId, plugin)); }); ClientInternals.attachInstance((Supplier>) () -> { List modIds = new ArrayList<>(); -- cgit