aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java
index 72861493..49511068 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java
@@ -17,6 +17,7 @@ public class ShortcutsConfigScreen extends Screen {
private ButtonWidget buttonNew;
private ButtonWidget buttonDone;
private boolean initialized;
+ private boolean saved;
private double scrollAmount;
public ShortcutsConfigScreen() {
@@ -52,13 +53,14 @@ public class ShortcutsConfigScreen extends Screen {
adder.add(buttonNew);
adder.add(ButtonWidget.builder(ScreenTexts.CANCEL, button -> {
if (client != null) {
- client.setScreen(null);
+ close();
}
}).build());
buttonDone = ButtonWidget.builder(ScreenTexts.DONE, button -> {
shortcutsConfigListWidget.saveShortcuts();
+ saved = true;
if (client != null) {
- client.setScreen(null);
+ close();
}
}).tooltip(Tooltip.of(Text.translatable("skyblocker.shortcuts.commandSuggestionTooltip"))).build();
adder.add(buttonDone);
@@ -73,7 +75,7 @@ public class ShortcutsConfigScreen extends Screen {
if (confirmedAction && shortcutsConfigListWidget.getSelectedOrNull() instanceof ShortcutsConfigListWidget.ShortcutEntry shortcutEntry) {
shortcutsConfigListWidget.removeEntry(shortcutEntry);
}
- client.setScreen(this); // Re-inits the screen and creates a new instance of ShortcutsConfigListWidget
+ client.setScreen(this); // Re-inits the screen and keeps the old instance of ShortcutsConfigListWidget
shortcutsConfigListWidget.setScrollAmount(scrollAmount);
}
}
@@ -84,6 +86,21 @@ public class ShortcutsConfigScreen extends Screen {
context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFF);
}
+ @Override
+ public void close() {
+ if (!saved && client != null) {
+ client.setScreen(new ConfirmScreen(confirmedAction -> {
+ if (confirmedAction) {
+ super.close();
+ } else {
+ client.setScreen(this);
+ }
+ }, Text.translatable("text.cloth-config.quit_config"), Text.translatable("text.cloth-config.quit_config_sure"), Text.translatable("text.cloth-config.quit_discard"), ScreenTexts.CANCEL));
+ } else {
+ super.close();
+ }
+ }
+
protected void updateButtons() {
buttonDelete.active = Shortcuts.isShortcutsLoaded() && shortcutsConfigListWidget.getSelectedOrNull() instanceof ShortcutsConfigListWidget.ShortcutEntry;
buttonNew.active = Shortcuts.isShortcutsLoaded() && shortcutsConfigListWidget.getCategory().isPresent();