aboutsummaryrefslogtreecommitdiff
path: root/forge/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-10-21 23:36:28 +0800
committershedaniel <daniel@shedaniel.me>2021-10-21 23:36:28 +0800
commitd18620eadb0c6201ba8e99711036bc102960cd14 (patch)
tree52ef9fe2af23a5f52d7fcf428be985cf254f2554 /forge/src/main
parenta2cbe3b62c01088edd7427ff75886d6996c85404 (diff)
downloadRoughlyEnoughItems-d18620eadb0c6201ba8e99711036bc102960cd14.tar.gz
RoughlyEnoughItems-d18620eadb0c6201ba8e99711036bc102960cd14.tar.bz2
RoughlyEnoughItems-d18620eadb0c6201ba8e99711036bc102960cd14.zip
Fix most of the issues in #643
Diffstat (limited to 'forge/src/main')
-rw-r--r--forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java1
-rw-r--r--forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsInitializerImpl.java5
-rw-r--r--forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java24
3 files changed, 27 insertions, 3 deletions
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 61593fd84..29b712b6a 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<Screen> consumer) {
+ private static final List<UnaryOperator<Screen>> CONSUMERS = new ArrayList<>();
+
+ static {
+ MinecraftForge.EVENT_BUS.addListener(ErrorDisplayerImpl::onGuiOpen);
+ }
+
+ public static void registerGuiInit(UnaryOperator<Screen> consumer) {
+ CONSUMERS.add(consumer);
+ }
+
+ public static void onGuiOpen(GuiOpenEvent event) {
+ for (UnaryOperator<Screen> consumer : CONSUMERS) {
+ Screen screen = consumer.apply(event.getGui());
+ if (screen != null) {
+ event.setGui(screen);
+ }
+ }
}
}