diff --git a/src/main/java/betterquesting/api2/client/gui/GuiContainerCanvas.java b/src/main/java/betterquesting/api2/client/gui/GuiContainerCanvas.java index 64f311a0d..6d6e5a673 100644 --- a/src/main/java/betterquesting/api2/client/gui/GuiContainerCanvas.java +++ b/src/main/java/betterquesting/api2/client/gui/GuiContainerCanvas.java @@ -193,14 +193,8 @@ public void handleMouseInput() throws IOException { @Override public void keyTyped(char c, int keyCode) { - if (keyCode == 1) { - if (this.isVolatile || this instanceof IVolatileScreen) { - openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); - } else { - this.mc.displayGuiScreen(null); - if (this.mc.currentScreen == null) this.mc.setIngameFocus(); - } - + if (keyCode == Keyboard.KEY_ESCAPE) { + confirmVolatileClose(); return; } @@ -314,17 +308,20 @@ public boolean onKeyTyped(char c, int keycode) { } if (!used && (BQ_Keybindings.openQuests.getKeyCode() == keycode || mc.gameSettings.keyBindInventory.getKeyCode() == keycode)) { - if (this.isVolatile || this instanceof IVolatileScreen) { - openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); - } else { - this.mc.displayGuiScreen(null); - if (this.mc.currentScreen == null) this.mc.setIngameFocus(); - } + confirmVolatileClose(); } return used; } + private void confirmVolatileClose() { + if (this.isVolatile || this instanceof IVolatileScreen) { + openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); + } else { + confirmClose(0); + } + } + @Override public List getTooltip(int mx, int my) { ListIterator pnIter = guiPanels.listIterator(guiPanels.size()); diff --git a/src/main/java/betterquesting/api2/client/gui/GuiScreenCanvas.java b/src/main/java/betterquesting/api2/client/gui/GuiScreenCanvas.java index 0dcc36ebc..e1ae3d6fd 100644 --- a/src/main/java/betterquesting/api2/client/gui/GuiScreenCanvas.java +++ b/src/main/java/betterquesting/api2/client/gui/GuiScreenCanvas.java @@ -194,18 +194,11 @@ public void handleMouseInput() throws IOException { @Override public void keyTyped(char c, int keyCode) { - if (keyCode == 1) // ESCAPE - { - if (this.isVolatile || this instanceof IVolatileScreen) { - openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); - } else { - this.mc.displayGuiScreen(null); - if (this.mc.currentScreen == null) this.mc.setIngameFocus(); - } - + if (keyCode == Keyboard.KEY_ESCAPE) { + confirmVolatileClose(); return; } - if (keyCode == 14) { // BACKSPACE + if (keyCode == BQ_Keybindings.backPage.getKeyCode()) { // BACKSPACE if (this.mc.currentScreen instanceof GuiScreenCanvas) { GuiScreenCanvas canvas = (GuiScreenCanvas) mc.currentScreen; boolean hasKeyAction = false; @@ -330,17 +323,20 @@ public boolean onKeyTyped(char c, int keycode) { } if (!used && (BQ_Keybindings.openQuests.getKeyCode() == keycode || mc.gameSettings.keyBindInventory.getKeyCode() == keycode)) { - if (this.isVolatile || this instanceof IVolatileScreen) { - openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); - } else { - this.mc.displayGuiScreen(null); - if (this.mc.currentScreen == null) this.mc.setIngameFocus(); - } + confirmVolatileClose(); } return used; } + private void confirmVolatileClose() { + if (this.isVolatile || this instanceof IVolatileScreen) { + openPopup(new PopChoice(QuestTranslation.translate("betterquesting.gui.closing_warning") + "\n\n" + QuestTranslation.translate("betterquesting.gui.closing_confirm"), PresetIcon.ICON_NOTICE.getTexture(), this::confirmClose, QuestTranslation.translate("gui.yes"), QuestTranslation.translate("gui.no"))); + } else { + confirmClose(0); + } + } + @Override public List getTooltip(int mx, int my) { ListIterator pnIter = guiPanels.listIterator(guiPanels.size()); diff --git a/src/main/java/betterquesting/client/BQ_Keybindings.java b/src/main/java/betterquesting/client/BQ_Keybindings.java index bb3741854..ff88cabb1 100644 --- a/src/main/java/betterquesting/client/BQ_Keybindings.java +++ b/src/main/java/betterquesting/client/BQ_Keybindings.java @@ -7,10 +7,13 @@ public class BQ_Keybindings { public static KeyBinding openQuests; + public static KeyBinding backPage; public static void RegisterKeys() { openQuests = new KeyBinding("key.betterquesting.quests", Keyboard.KEY_GRAVE, ModReference.NAME); + backPage = new KeyBinding("key.betterquesting.back", Keyboard.KEY_BACK, ModReference.NAME); ClientRegistry.registerKeyBinding(openQuests); + ClientRegistry.registerKeyBinding(backPage); } } diff --git a/src/main/resources/assets/betterquesting/lang/en_us.lang b/src/main/resources/assets/betterquesting/lang/en_us.lang index 5de796c5c..bde9a5d2b 100644 --- a/src/main/resources/assets/betterquesting/lang/en_us.lang +++ b/src/main/resources/assets/betterquesting/lang/en_us.lang @@ -129,6 +129,7 @@ betterquesting.msg.copy_quest_copied=§eCopied to clipboard: §b%s betterquesting.msg.copy_quest_failed=§cCould not copy §b%s§r§c to clipboard! key.betterquesting.quests=Open Quests +key.betterquesting.back=Return to Previous Page key.betterquesting.party=Party Manager key.betterquesting.themes=Change Theme