From f1c9330818037365503f5eb6bce5c09d1d1a045d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 19 Apr 2020 23:06:44 +0800 Subject: Trying to fix 313 Signed-off-by: shedaniel --- .../me/shedaniel/rei/RoughlyEnoughItemsCore.java | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 7b49e7e37..25d5c716f 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/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; -- cgit