From a1b170394dc478e16fb748301b61bf57a6dcdccc Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 22 Oct 2021 01:40:06 +0800 Subject: Add Performance Analysis --- .../me/shedaniel/rei/forge/PluginDetectorImpl.java | 12 ++++++------ .../shedaniel/rei/forge/RoughlyEnoughItemsForge.java | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) (limited to 'forge/src/main/java') 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 311a9c15c..80f4971e1 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/PluginDetectorImpl.java @@ -40,12 +40,12 @@ import me.shedaniel.rei.plugin.common.DefaultRuntimePlugin; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.apache.logging.log4j.util.TriConsumer; 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 { @@ -74,14 +74,14 @@ public class PluginDetectorImpl { PluginView.getServerInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultPlugin())); PluginView.getServerInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultRuntimePlugin())); PluginView.getServerInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new JEIExtraPlugin())); - RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIServerPlugin.class::isAssignableFrom, (modId, plugin) -> { + RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIServerPlugin.class::isAssignableFrom, (modId, plugin, clazz) -> { ((PluginView) PluginManager.getServerInstance()).registerPlugin(wrapPlugin(modId, plugin.get())); }); } 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) -> { + RoughlyEnoughItemsForge.>scanAnnotation(REIPlugin.class, me.shedaniel.rei.api.common.plugins.REIPlugin.class::isAssignableFrom, (modId, plugin, clazz) -> { ((PluginView) PluginManager.getInstance()).registerPlugin(wrapPlugin(modId, plugin.get())); }); } @@ -91,7 +91,7 @@ public class PluginDetectorImpl { PluginView.getClientInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultClientPlugin())); PluginView.getClientInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new DefaultClientRuntimePlugin())); PluginView.getClientInstance().registerPlugin(wrapPlugin(Collections.singletonList("roughlyenoughitems"), new JEIExtraClientPlugin())); - RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIClientPlugin.class::isAssignableFrom, (modId, plugin) -> { + RoughlyEnoughItemsForge.scanAnnotation(REIPlugin.class, REIClientPlugin.class::isAssignableFrom, (modId, plugin, clazz) -> { ((PluginView) PluginManager.getClientInstance()).registerPlugin(wrapPlugin(modId, plugin.get())); }); ClientInternals.attachInstance((Supplier>) () -> { @@ -103,7 +103,7 @@ public class PluginDetectorImpl { } return modIds; }, "jeiCompatMods"); - JEIPluginDetector.detect((aClass, consumer) -> RoughlyEnoughItemsForge.scanAnnotation((Class) aClass, clazz -> true, - (BiConsumer, Supplier>) (BiConsumer) consumer), PluginView.getClientInstance()::registerPlugin); + JEIPluginDetector.detect((aClass, consumer) -> RoughlyEnoughItemsForge.scanAnnotation((Class) aClass, c -> true, + (TriConsumer, Supplier, Class>) (TriConsumer) consumer), PluginView.getClientInstance()::registerPlugin); } } diff --git a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java index 29b712b6a..ea3832a25 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java @@ -31,15 +31,15 @@ import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.forgespi.language.IModInfo; import net.minecraftforge.forgespi.language.ModFileScanData; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; +import org.apache.commons.lang3.tuple.ImmutableTriple; +import org.apache.commons.lang3.tuple.Triple; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.util.TriConsumer; import org.jetbrains.annotations.ApiStatus; import org.objectweb.asm.Type; import java.util.List; -import java.util.function.BiConsumer; import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -54,12 +54,12 @@ public class RoughlyEnoughItemsForge { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> RoughlyEnoughItemsInitializer::onInitializeClient); } - public static void scanAnnotation(Class clazz, Predicate> predicate, BiConsumer, Supplier> consumer) { + public static void scanAnnotation(Class clazz, Predicate> predicate, TriConsumer, Supplier, Class> consumer) { scanAnnotation(Type.getType(clazz), predicate, consumer); } - public static void scanAnnotation(Type annotationType, Predicate> predicate, BiConsumer, Supplier> consumer) { - List, Supplier>> instances = Lists.newArrayList(); + public static void scanAnnotation(Type annotationType, Predicate> predicate, TriConsumer, Supplier, Class> consumer) { + List, Supplier, Class>> instances = Lists.newArrayList(); for (ModFileScanData data : ModList.get().getAllScanData()) { List modIds = data.getIModInfoData().stream() .flatMap(info -> info.getMods().stream()) @@ -70,14 +70,14 @@ public class RoughlyEnoughItemsForge { try { Class clazz = (Class) Class.forName(annotation.getMemberName()); if (predicate.test(clazz)) { - instances.add(new ImmutablePair<>(modIds, () -> { + instances.add(new ImmutableTriple<>(modIds, () -> { try { return clazz.getDeclaredConstructor().newInstance(); } catch (Throwable throwable) { LOGGER.error("Failed to load plugin: " + annotation.getMemberName(), throwable); return null; } - })); + }, clazz)); } } catch (Throwable throwable) { LOGGER.error("Failed to load plugin: " + annotation.getMemberName(), throwable); @@ -86,8 +86,8 @@ public class RoughlyEnoughItemsForge { } } - for (Pair, Supplier> pair : instances) { - consumer.accept(pair.getLeft(), pair.getRight()); + for (Triple, Supplier, Class> pair : instances) { + consumer.accept(pair.getLeft(), pair.getMiddle(), pair.getRight()); } } } -- cgit