diff options
author | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-04-03 17:41:54 -0400 |
---|---|---|
committer | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-04-03 17:41:54 -0400 |
commit | 560f407b2e67a90b0f348d8f9e65e7caffa6e694 (patch) | |
tree | 5834609cb3d3ae45b2d720ef9c8982fe3015508f | |
parent | bc65afc87c2418d0b209d02961213daa63b1b6bb (diff) | |
download | SkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.tar.gz SkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.tar.bz2 SkytilsMod-560f407b2e67a90b0f348d8f9e65e7caffa6e694.zip |
Option to reopen the options menu when exiting a config menu
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", |