aboutsummaryrefslogtreecommitdiff
path: root/fabric/src/main/java/me
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 /fabric/src/main/java/me
parent843a29c5fcf8d20f7073438d9fbed7039dead719 (diff)
downloadRoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.gz
RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.bz2
RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.zip
Fix most of the issues in #643
Diffstat (limited to 'fabric/src/main/java/me')
-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);
+ }
+ });
}
}