From a7b0a0dd4b305eb8655b008ebcfdcd2f7b70079a Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 15 Oct 2021 02:43:07 +0800 Subject: Fix merge conflicts --- forge/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index 94be9b025..1accad167 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -57,7 +57,7 @@ dependencies { common(project(path: ":jei-compatibility-layer", configuration: "dev")) { transitive false } shadowCommon(project(path: ":jei-compatibility-layer", configuration: "dev")) { transitive false } - // common(project(path: ":jei-internals-workaround")) { transitive = false } + // runtimeClasspath(project(path: ":jei-internals-workaround", configuration: "dev")) { transitive = false } depProjects.forEach { common(project(path: it, configuration: "dev")) { transitive false } @@ -82,6 +82,8 @@ dependencies { // modRuntime("curse.maven:jep-417645:3198370") // modRuntime("curse.maven:simple-storage-network-268495:3257204") // modRuntime("curse.maven:create-328085:3278516") + modRuntime("curse.maven:industrial-foregoing-266515:3446262") + modRuntime("curse.maven:titanium-287342:3346366") } shadowJar { -- cgit From 6e7a641926d8b0ea2d0a1caddbf348fe24b669ce Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 16 Oct 2021 00:37:19 +0800 Subject: Fix JEI recipes duplicating and going to the wrong category, Fix JER's insane resource reload during plugin application, Add DisplayAdditionReason, Safeguard DisplayCategory#setupDisplay --- forge/build.gradle | 2 ++ forge/src/main/resources/META-INF/mods.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index 1accad167..eca05ac20 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -84,6 +84,8 @@ dependencies { // modRuntime("curse.maven:create-328085:3278516") modRuntime("curse.maven:industrial-foregoing-266515:3446262") modRuntime("curse.maven:titanium-287342:3346366") + modRuntime("curse.maven:extended-crafting-268387:3470453") + modRuntime("curse.maven:cucumber-272335:3349690") } shadowJar { diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 1a89466fd..f35aba857 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -8,7 +8,7 @@ license = "MIT" [[mods]] modId = "roughlyenoughitems" version = "${version}" -displayName = "Roughly Enough Items" +displayName = "Roughly Enough Items (REI)" description = ''' To allow players to view items and recipes. ''' -- cgit From a54c1f59e84f97c281a332bb5e0e5da1da5eb3c5 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 16 Oct 2021 02:07:17 +0800 Subject: Comment out forge test mods --- forge/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index eca05ac20..c3d81005c 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -82,10 +82,10 @@ dependencies { // modRuntime("curse.maven:jep-417645:3198370") // modRuntime("curse.maven:simple-storage-network-268495:3257204") // modRuntime("curse.maven:create-328085:3278516") - modRuntime("curse.maven:industrial-foregoing-266515:3446262") - modRuntime("curse.maven:titanium-287342:3346366") - modRuntime("curse.maven:extended-crafting-268387:3470453") - modRuntime("curse.maven:cucumber-272335:3349690") + // modRuntime("curse.maven:industrial-foregoing-266515:3446262") + // modRuntime("curse.maven:titanium-287342:3346366") + // modRuntime("curse.maven:extended-crafting-268387:3470453") + // modRuntime("curse.maven:cucumber-272335:3349690") } shadowJar { -- cgit From 0398e549393974d43365fd7a3f5f06c9df241a93 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 16 Oct 2021 21:59:02 +0800 Subject: Fix #641 --- forge/src/main/resources/META-INF/mods.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'forge') diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index f35aba857..ba695b27f 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -15,7 +15,7 @@ To allow players to view items and recipes. [[mods]] modId = "jei" -version = "7.9999" +version = "8.9999" displayName = "Roughly Enough Items (JEI Stub)" description = ''' To allow players to view items and recipes. -- cgit From 57190de30dbe4e324137f253002ad5fa27fef92c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 16 Oct 2021 22:27:22 +0800 Subject: Add back REI Compatibility Workaround --- forge/build.gradle | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index c3d81005c..380420c59 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -37,13 +37,15 @@ repositories { loom { launches { all { - // arg "--mixin", "rei-jei-internals-workaround.mixins.json" + arg "--mixin", "rei-jei-internals-workaround.mixins.json" } } forge { localMods { - // it.add(project(":jei-internals-workaround").sourceSets.main) + jeiInternalsWorkaround { + add(project(":jei-internals-workaround").sourceSets.main) + } } } } @@ -57,7 +59,7 @@ dependencies { common(project(path: ":jei-compatibility-layer", configuration: "dev")) { transitive false } shadowCommon(project(path: ":jei-compatibility-layer", configuration: "dev")) { transitive false } - // runtimeClasspath(project(path: ":jei-internals-workaround", configuration: "dev")) { transitive = false } + runtimeClasspath(project(path: ":jei-internals-workaround", configuration: "dev")) { transitive = false } depProjects.forEach { common(project(path: it, configuration: "dev")) { transitive false } @@ -161,6 +163,7 @@ curseforge { relations { requiredDependency "architectury-forge" requiredDependency "cloth-config-forge" + requiredDependency "roughly-enough-items-hacks" } mainArtifact(tasks.getByName("remapJar")) { displayName = "[Forge $project.supported_version] v$project.version" -- cgit From a95ce0972205bff98687c7d2bb1654e331c7e41f Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 20 Oct 2021 00:53:31 +0800 Subject: Map category IDs --- forge/build.gradle | 2 ++ 1 file changed, 2 insertions(+) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index 380420c59..02ed1e9ef 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -88,6 +88,8 @@ dependencies { // modRuntime("curse.maven:titanium-287342:3346366") // modRuntime("curse.maven:extended-crafting-268387:3470453") // modRuntime("curse.maven:cucumber-272335:3349690") + // modRuntime("curse.maven:crafttweaker-239197:3494644") + // modRuntime("curse.maven:jeitweaker-368718:3468722") } shadowJar { -- cgit From 62045c9cc0416557e6b57b6f4101b98a0da02dde Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 21 Oct 2021 23:36:28 +0800 Subject: Fix most of the issues in #643 --- forge/build.gradle | 1 + .../rei/forge/RoughlyEnoughItemsForge.java | 1 - .../forge/RoughlyEnoughItemsInitializerImpl.java | 5 +++++ .../rei/impl/client/forge/ErrorDisplayerImpl.java | 24 ++++++++++++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) (limited to 'forge') diff --git a/forge/build.gradle b/forge/build.gradle index 02ed1e9ef..251f6fd54 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -90,6 +90,7 @@ dependencies { // modRuntime("curse.maven:cucumber-272335:3349690") // modRuntime("curse.maven:crafttweaker-239197:3494644") // modRuntime("curse.maven:jeitweaker-368718:3468722") + modRuntime("curse.maven:eidolon-429625:3157832") } shadowJar { 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 db5da78bd..dc9dc0175 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java @@ -38,7 +38,6 @@ import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.ApiStatus; import org.objectweb.asm.Type; -import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.function.BiConsumer; import java.util.function.Predicate; diff --git a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsInitializerImpl.java b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsInitializerImpl.java index 6baa7fd5c..868b10af5 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsInitializerImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsInitializerImpl.java @@ -23,7 +23,9 @@ package me.shedaniel.rei.forge; +import me.shedaniel.rei.RoughlyEnoughItemsState; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.fml.loading.FMLLoader; @@ -33,6 +35,9 @@ public class RoughlyEnoughItemsInitializerImpl { } public static void checkMods() { + if (ModList.get().isLoaded("moreoverlays")) { + RoughlyEnoughItemsState.error("REI is not compatible with MoreOverlays, and actually contains Builtin Inventory Highlighting, other features can be installed via different mods!"); + } } public static boolean isDev() { diff --git a/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java b/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java index 5186c7884..0af11b1c0 100644 --- a/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java @@ -24,10 +24,30 @@ package me.shedaniel.rei.impl.client.forge; import net.minecraft.client.gui.screens.Screen; +import net.minecraftforge.client.event.GuiOpenEvent; +import net.minecraftforge.common.MinecraftForge; -import java.util.function.Consumer; +import java.util.ArrayList; +import java.util.List; +import java.util.function.UnaryOperator; public class ErrorDisplayerImpl { - public static void registerGuiInit(Consumer consumer) { + private static final List> CONSUMERS = new ArrayList<>(); + + static { + MinecraftForge.EVENT_BUS.addListener(ErrorDisplayerImpl::onGuiOpen); + } + + public static void registerGuiInit(UnaryOperator consumer) { + CONSUMERS.add(consumer); + } + + public static void onGuiOpen(GuiOpenEvent event) { + for (UnaryOperator consumer : CONSUMERS) { + Screen screen = consumer.apply(event.getGui()); + if (screen != null) { + event.setGui(screen); + } + } } } -- cgit From c8f1c10e6c661ecf949ab29e0e8efeaa13324670 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') 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 cc7ea594d..aace5aa12 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.runtime.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 dc9dc0175..dd5824c70 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.memberName()); 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.memberName(), throwable); return null; } - })); + }, clazz)); } } catch (Throwable throwable) { LOGGER.error("Failed to load plugin: " + annotation.memberName(), 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