aboutsummaryrefslogtreecommitdiff
path: root/fabric/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'fabric/src/main/java')
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java b/fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java
index ae6a0f9f3..eeaf86492 100644
--- a/fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java
+++ b/fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java
@@ -23,16 +23,29 @@
package me.shedaniel.rei.impl.client.fabric;
+import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
+import java.util.function.UnaryOperator;
public class ErrorDisplayerImpl {
public static List<Consumer<Screen>> consumerList = new ArrayList<>();
- public static void registerGuiInit(Consumer<Screen> consumer) {
- consumerList.add(consumer);
+ public static void registerGuiInit(UnaryOperator<Screen> consumer) {
+ consumerList.add(screen -> {
+ Screen screen1 = consumer.apply(screen);
+ if (screen1 != null) {
+ Minecraft minecraft = Minecraft.getInstance();
+ try {
+ if (minecraft.screen != null) minecraft.screen.removed();
+ } catch (Throwable ignored) {
+ }
+ minecraft.screen = null;
+ minecraft.setScreen(screen1);
+ }
+ });
}
}