aboutsummaryrefslogtreecommitdiff
path: root/forge/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-10-21 23:36:28 +0800
committershedaniel <daniel@shedaniel.me>2021-10-22 01:41:20 +0800
commit62045c9cc0416557e6b57b6f4101b98a0da02dde (patch)
tree7361edee07b0fae370b0006de5c5e2b219a67408 /forge/src
parent843a29c5fcf8d20f7073438d9fbed7039dead719 (diff)
downloadRoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.gz
RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.bz2
RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.zip
Fix most of the issues in #643
Diffstat (limited to 'forge/src')
-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 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<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);
+ }
+ }
}
}