aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-04-03 17:41:54 -0400
committerMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-04-03 17:41:54 -0400
commit560f407b2e67a90b0f348d8f9e65e7caffa6e694 (patch)
tree5834609cb3d3ae45b2d720ef9c8982fe3015508f
parentbc65afc87c2418d0b209d02961213daa63b1b6bb (diff)
downloadSkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.tar.gz
SkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.tar.bz2
SkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.zip
Option to reopen the options menu when exiting a config menu
-rw-r--r--src/main/java/skytils/skytilsmod/core/Config.java9
-rw-r--r--src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java4
-rw-r--r--src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java4
-rw-r--r--src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java28
-rw-r--r--src/main/resources/mixins.skytils.json1
5 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/skytils/skytilsmod/core/Config.java b/src/main/java/skytils/skytilsmod/core/Config.java
index 85470371..93e18341 100644
--- a/src/main/java/skytils/skytilsmod/core/Config.java
+++ b/src/main/java/skytils/skytilsmod/core/Config.java
@@ -57,6 +57,15 @@ public class Config extends Vigilant {
@Property(
type = PropertyType.SWITCH,
+ name = "Reopen Options Menu",
+ description = "Sets the menu to the Skytils options menu instead of exiting when on a Skytils config menu.",
+ category = "General",
+ subcategory = "Other"
+ )
+ public boolean reopenOptionsMenu = true;
+
+ @Property(
+ type = PropertyType.SWITCH,
name = "Override other reparty commands",
description = "Uses Skytils' reparty command instead of other mods'. \n§cRequires restart to work",
category = "General",
diff --git a/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java b/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java
index 8f648cee..fa38f131 100644
--- a/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java
+++ b/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java
@@ -1,9 +1,12 @@
package skytils.skytilsmod.gui.commandaliases;
+import club.sk1er.mods.core.ModCore;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
+import skytils.skytilsmod.Skytils;
import skytils.skytilsmod.features.impl.handlers.CommandAliases;
+import skytils.skytilsmod.gui.OptionsGui;
import skytils.skytilsmod.gui.commandaliases.elements.CleanButton;
import skytils.skytilsmod.gui.commandaliases.elements.ScrollingCommandAliasesList;
@@ -92,6 +95,7 @@ public class CommandAliasesGui extends GuiScreen {
}
}
CommandAliases.saveAliases();
+ if (Skytils.config.reopenOptionsMenu) ModCore.getInstance().getGuiHandler().open(new OptionsGui());
}
private void addAlias() {
diff --git a/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java b/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java
index fd5dad45..a341b802 100644
--- a/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java
+++ b/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java
@@ -1,10 +1,13 @@
package skytils.skytilsmod.gui.keyshortcuts;
+import club.sk1er.mods.core.ModCore;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.client.settings.GameSettings;
+import skytils.skytilsmod.Skytils;
import skytils.skytilsmod.features.impl.handlers.KeyShortcuts;
+import skytils.skytilsmod.gui.OptionsGui;
import skytils.skytilsmod.gui.commandaliases.elements.CleanButton;
import skytils.skytilsmod.gui.keyshortcuts.elements.KeyShortcutsList;
@@ -100,6 +103,7 @@ public class KeyShortcutsGui extends GuiScreen {
}
}
KeyShortcuts.saveShortcuts();
+ if (Skytils.config.reopenOptionsMenu) ModCore.getInstance().getGuiHandler().open(new OptionsGui());
}
private void addBlankShortcut() {
diff --git a/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java b/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java
new file mode 100644
index 00000000..55d5e2a6
--- /dev/null
+++ b/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java
@@ -0,0 +1,28 @@
+package skytils.skytilsmod.mixins;
+
+import club.sk1er.mods.core.ModCore;
+import club.sk1er.vigilance.Vigilant;
+import jdk.nashorn.internal.ir.annotations.Ignore;
+import net.minecraft.client.gui.GuiScreen;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import skytils.skytilsmod.Skytils;
+import skytils.skytilsmod.core.Config;
+import skytils.skytilsmod.gui.OptionsGui;
+
+@Mixin(value = club.sk1er.vigilance.gui.SettingsGui.class, remap = false)
+public class MixinSettingsGui extends GuiScreen {
+ @Shadow @Final private Vigilant config;
+
+ @SuppressWarnings("UnresolvedMixinReference")
+ @Inject(method = "onGuiClosed", at = @At("TAIL"))
+ private void onGuiClosed(CallbackInfo ci) {
+ if (Skytils.config.reopenOptionsMenu && this.config instanceof Config) {
+ ModCore.getInstance().getGuiHandler().open(new OptionsGui());
+ }
+ }
+}
diff --git a/src/main/resources/mixins.skytils.json b/src/main/resources/mixins.skytils.json
index 30e20fcf..20f41892 100644
--- a/src/main/resources/mixins.skytils.json
+++ b/src/main/resources/mixins.skytils.json
@@ -29,6 +29,7 @@
"MixinRenderEntityItem",
"MixinRenderItem",
"MixinRenderLightningBolt",
+ "MixinSettingsGui",
"MixinSlot",
"MixinSoundManager",
"MixinTileEntityChestRenderer",