Pārlūkot izejas kodu

Trying to fix 313

Signed-off-by: shedaniel <daniel@shedaniel.me>
shedaniel 5 gadi atpakaļ
vecāks
revīzija
5810efb209

+ 1 - 1
gradle.properties

@@ -1,4 +1,4 @@
-mod_version=4.1.12-unstable
+mod_version=4.1.13-unstable
 supported_version=20w16a
 minecraft_version=20w16a
 yarn_version=20w16a+build.1

+ 15 - 10
src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java

@@ -284,6 +284,11 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
         }
     }
     
+    private boolean shouldReturn(Screen screen) {
+        if (screen == null) return true;
+        return shouldReturn(screen.getClass());
+    }
+    
     private boolean shouldReturn(Class<?> screen) {
         try {
             for (OverlayDecider decider : DisplayHelper.getInstance().getAllOverlayDeciders()) {
@@ -309,9 +314,9 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
             return ActionResult.PASS;
         });
         ClothClientHooks.SCREEN_INIT_POST.register((minecraftClient, screen, screenHooks) -> {
-            if (screen instanceof InventoryScreen && minecraftClient.interactionManager.hasCreativeInventory())
+            if (shouldReturn(screen))
                 return;
-            if (shouldReturn(screen.getClass()))
+            if (screen instanceof InventoryScreen && minecraftClient.interactionManager.hasCreativeInventory())
                 return;
             if (screen instanceof HandledScreen)
                 ScreenHelper.setLastHandledScreen((HandledScreen<?>) screen);
@@ -326,12 +331,12 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
                 screenHooks.cloth_getChildren().add(ScreenHelper.getLastOverlay(true, false));
         });
         ClothClientHooks.SCREEN_RENDER_POST.register((minecraftClient, screen, i, i1, v) -> {
-            if (shouldReturn(screen.getClass()))
+            if (shouldReturn(screen))
                 return;
             ScreenHelper.getLastOverlay().render(i, i1, v);
         });
         ClothClientHooks.SCREEN_MOUSE_DRAGGED.register((minecraftClient, screen, v, v1, i, v2, v3) -> {
-            if (shouldReturn(screen.getClass()))
+            if (shouldReturn(screen))
                 return ActionResult.PASS;
             if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().mouseDragged(v, v1, i, v2, v3))
                 return ActionResult.SUCCESS;
@@ -353,30 +358,30 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
             return ActionResult.PASS;
         });
         ClothClientHooks.SCREEN_MOUSE_SCROLLED.register((minecraftClient, screen, v, v1, v2) -> {
-            if (shouldReturn(screen.getClass()))
+            if (shouldReturn(screen))
                 return ActionResult.PASS;
             if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().mouseScrolled(v, v1, v2))
                 return ActionResult.SUCCESS;
             return ActionResult.PASS;
         });
         ClothClientHooks.SCREEN_CHAR_TYPED.register((minecraftClient, screen, character, keyCode) -> {
-            if (shouldReturn(screen.getClass()))
+            if (shouldReturn(screen))
                 return ActionResult.PASS;
             if (ScreenHelper.getLastOverlay().charTyped(character, keyCode))
                 return ActionResult.SUCCESS;
             return ActionResult.PASS;
         });
         ClothClientHooks.SCREEN_LATE_RENDER.register((minecraftClient, screen, i, i1, v) -> {
-            if (!ScreenHelper.isOverlayVisible())
+            if (shouldReturn(screen))
                 return;
-            if (shouldReturn(screen.getClass()))
+            if (!ScreenHelper.isOverlayVisible())
                 return;
             ScreenHelper.getLastOverlay().lateRender(i, i1, v);
         });
         ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
-            if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget || (screen.getFocused() instanceof RecipeBookWidget && ((RecipeBookWidget) screen.getFocused()).searchField != null && ((RecipeBookWidget) screen.getFocused()).searchField.isFocused()))
+            if (shouldReturn(screen))
                 return ActionResult.PASS;
-            if (shouldReturn(screen.getClass()))
+            if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget || (screen.getFocused() instanceof RecipeBookWidget && ((RecipeBookWidget) screen.getFocused()).searchField != null && ((RecipeBookWidget) screen.getFocused()).searchField.isFocused()))
                 return ActionResult.PASS;
             if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
                 return ActionResult.SUCCESS;