From a4c5b457b5f81cc82134aa41906f80ae0fafab72 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Mon, 3 Jul 2017 22:00:56 +0200 Subject: [PATCH] Fixed crashes relating to scrollbar in GUIs, fixes #1338 --- CHANGELOG.md | 1 + .../com/raoulvdberge/refinedstorage/gui/GuiController.java | 2 +- .../raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java | 4 ++-- .../raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java | 2 +- .../com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java | 4 ++-- .../com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java | 2 +- .../refinedstorage/integration/jei/GuiHandlerGrid.java | 2 +- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e21f084e3..d957bc2a0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### 1.5.7 - Exposed pattern inventory for Pattern Grid (raoulvdberge) +- Fixed crashes relating to scrollbar in GUIs (raoulvdberge) - Added advancements (raoulvdberge) ### 1.5.6 diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java index 70c42f905..25886a07a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java @@ -57,7 +57,7 @@ public class GuiController extends GuiBase { int x = 33; int y = 26; - int slot = scrollbar.getOffset() * 2; + int slot = scrollbar != null ? (scrollbar.getOffset() * 2) : 0; RenderHelper.enableGUIStandardItemLighting(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java index a86fdaca1..da1c60b49 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java @@ -113,7 +113,7 @@ public class GuiCraftingMonitor extends GuiBase { drawString(7, 7, t(craftingMonitor.getGuiTitle())); drawString(7, 137, t("container.inventory")); - int item = scrollbar.getOffset(); + int item = scrollbar != null ? scrollbar.getOffset() : 0; RenderHelper.enableGUIStandardItemLighting(); @@ -176,7 +176,7 @@ public class GuiCraftingMonitor extends GuiBase { itemSelected = -1; if (mouseButton == 0 && inBounds(8, 20, 144, 90, mouseX - guiLeft, mouseY - guiTop)) { - int item = scrollbar.getOffset(); + int item = scrollbar != null ? scrollbar.getOffset() : 0; for (int i = 0; i < VISIBLE_ROWS; ++i) { int ix = 8; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java index ee38a7093..785e9ff5f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java @@ -113,7 +113,7 @@ public class GuiCraftingPreview extends GuiBase { GlStateManager.popMatrix(); } else { - int slot = scrollbar.getOffset() * 2; + int slot = scrollbar != null ? (scrollbar.getOffset() * 2) : 0; RenderHelper.enableGUIStandardItemLighting(); GlStateManager.enableDepth(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java index e96d016dd..f59f561bd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java @@ -95,7 +95,7 @@ public class GuiReaderWriter extends GuiBase { int x = 8; int y = 39; - int item = scrollbar.getOffset(); + int item = scrollbar != null ? scrollbar.getOffset() : 0; for (int i = 0; i < VISIBLE_ROWS; ++i) { if (item < getChannels().size()) { @@ -128,7 +128,7 @@ public class GuiReaderWriter extends GuiBase { if (inBounds(8, 39, 144, 73, mouseX - guiLeft, mouseY - guiTop)) { if (mouseButton == 0) { - int item = scrollbar.getOffset(); + int item = scrollbar != null ? scrollbar.getOffset() : 0; for (int i = 0; i < VISIBLE_ROWS; ++i) { int ix = 8; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index 07d16969f..ba48cd511 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -459,7 +459,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay { this.slotNumber = -1; - int slot = scrollbar.getOffset() * 9; + int slot = scrollbar != null ? (scrollbar.getOffset() * 9) : 0; RenderHelper.enableGUIStandardItemLighting(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/GuiHandlerGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/GuiHandlerGrid.java index a655af726..dc8d64df8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/GuiHandlerGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/GuiHandlerGrid.java @@ -25,7 +25,7 @@ public class GuiHandlerGrid implements IAdvancedGuiHandler { mouseX -= gui.getGuiLeft(); mouseY -= gui.getGuiTop(); - if (!gui.getSearchField().isFocused() && gui.isOverSlotArea(mouseX, mouseY)) { + if (gui.getScrollbar() != null && !gui.getSearchField().isFocused() && gui.isOverSlotArea(mouseX, mouseY)) { mouseX -= 7; mouseY -= 19;