diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-10-21 23:36:28 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-10-22 01:41:20 +0800 |
| commit | 62045c9cc0416557e6b57b6f4101b98a0da02dde (patch) | |
| tree | 7361edee07b0fae370b0006de5c5e2b219a67408 /fabric/src/main/java | |
| parent | 843a29c5fcf8d20f7073438d9fbed7039dead719 (diff) | |
| download | RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.gz RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.tar.bz2 RoughlyEnoughItems-62045c9cc0416557e6b57b6f4101b98a0da02dde.zip | |
Fix most of the issues in #643
Diffstat (limited to 'fabric/src/main/java')
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/ErrorDisplayerImpl.java | 17 |
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); + } + }); } } |
