diff options
author | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-04-05 21:41:09 -0400 |
---|---|---|
committer | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-04-05 21:41:09 -0400 |
commit | 4d9d4e7276f7db1aef03672618c8955f54fa3ae2 (patch) | |
tree | 6687da2e6662557598dc730e352e25b80d60ed74 /src/main | |
parent | 875f038937593dd3f838cb13fb69d14d383c7068 (diff) | |
download | SkytilsMod-4d9d4e7276f7db1aef03672618c8955f54fa3ae2.tar.gz SkytilsMod-4d9d4e7276f7db1aef03672618c8955f54fa3ae2.tar.bz2 SkytilsMod-4d9d4e7276f7db1aef03672618c8955f54fa3ae2.zip |
Fix reopen gui not working in production environment on SettingsGui
Diffstat (limited to 'src/main')
7 files changed, 29 insertions, 33 deletions
diff --git a/src/main/java/skytils/skytilsmod/Skytils.java b/src/main/java/skytils/skytilsmod/Skytils.java index 50a04d3b..d0a61fb0 100644 --- a/src/main/java/skytils/skytilsmod/Skytils.java +++ b/src/main/java/skytils/skytilsmod/Skytils.java @@ -1,13 +1,16 @@ package skytils.skytilsmod; import club.sk1er.mods.core.ModCore; +import club.sk1er.vigilance.gui.SettingsGui; import com.google.common.collect.Lists; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiIngameMenu; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.command.ICommand; import net.minecraft.network.play.client.C01PacketChatMessage; import net.minecraftforge.client.ClientCommandHandler; +import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.GuiScreenEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.MinecraftForge; @@ -38,9 +41,13 @@ import skytils.skytilsmod.features.impl.mining.MiningFeatures; import skytils.skytilsmod.features.impl.misc.*; import skytils.skytilsmod.features.impl.spidersden.RelicWaypoints; import skytils.skytilsmod.features.impl.spidersden.SpidersDenFeatures; +import skytils.skytilsmod.gui.LocationEditGui; import skytils.skytilsmod.gui.OptionsGui; +import skytils.skytilsmod.gui.commandaliases.CommandAliasesGui; +import skytils.skytilsmod.gui.keyshortcuts.KeyShortcutsGui; import skytils.skytilsmod.listeners.ChatListener; import skytils.skytilsmod.mixins.AccessorCommandHandler; +import skytils.skytilsmod.mixins.AccessorSettingsGui; import skytils.skytilsmod.utils.MayorInfo; import skytils.skytilsmod.utils.SBInfo; import skytils.skytilsmod.utils.Utils; @@ -244,4 +251,13 @@ public class Skytils { } } + @SubscribeEvent + public void onGuiChange(GuiOpenEvent event) { + GuiScreen old = mc.currentScreen; + if (event.gui == null && Skytils.config.reopenOptionsMenu) { + boolean isSettingsGui = old instanceof CommandAliasesGui || old instanceof LocationEditGui || old instanceof KeyShortcutsGui || (old instanceof SettingsGui && ((AccessorSettingsGui) old).getConfig() instanceof Config); + if (isSettingsGui) event.gui = new OptionsGui(); + } + } + } diff --git a/src/main/java/skytils/skytilsmod/gui/LocationEditGui.java b/src/main/java/skytils/skytilsmod/gui/LocationEditGui.java index 8d83a4a8..2812278a 100644 --- a/src/main/java/skytils/skytilsmod/gui/LocationEditGui.java +++ b/src/main/java/skytils/skytilsmod/gui/LocationEditGui.java @@ -104,6 +104,5 @@ public class LocationEditGui extends GuiScreen { @Override public void onGuiClosed() { GuiManager.saveConfig(); - ModCore.getInstance().getGuiHandler().open(new OptionsGui()); } } diff --git a/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java b/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java index fa38f131..23069d37 100644 --- a/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java +++ b/src/main/java/skytils/skytilsmod/gui/commandaliases/CommandAliasesGui.java @@ -95,7 +95,6 @@ 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 a341b802..8c4b92a6 100644 --- a/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java +++ b/src/main/java/skytils/skytilsmod/gui/keyshortcuts/KeyShortcutsGui.java @@ -103,7 +103,6 @@ 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/AccessorSettingsGui.java b/src/main/java/skytils/skytilsmod/mixins/AccessorSettingsGui.java new file mode 100644 index 00000000..63bbc6e7 --- /dev/null +++ b/src/main/java/skytils/skytilsmod/mixins/AccessorSettingsGui.java @@ -0,0 +1,12 @@ +package skytils.skytilsmod.mixins; + +import club.sk1er.vigilance.Vigilant; +import club.sk1er.vigilance.gui.SettingsGui; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(value = SettingsGui.class, remap = false) +public interface AccessorSettingsGui { + @Accessor("config") + Vigilant getConfig(); +} diff --git a/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java b/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java deleted file mode 100644 index dc1e0154..00000000 --- a/src/main/java/skytils/skytilsmod/mixins/MixinSettingsGui.java +++ /dev/null @@ -1,29 +0,0 @@ -package skytils.skytilsmod.mixins; - -import club.sk1er.mods.core.ModCore; -import club.sk1er.vigilance.Vigilant; -import net.minecraft.client.gui.GuiScreen; -import org.spongepowered.asm.mixin.Dynamic; -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.ModCoreInstaller; -import skytils.skytilsmod.Skytils; -import skytils.skytilsmod.core.Config; -import skytils.skytilsmod.gui.OptionsGui; - -@Mixin(value = club.sk1er.vigilance.gui.SettingsGui.class, remap = false, priority = 9999) -public class MixinSettingsGui extends GuiScreen { - @Shadow @Final private Vigilant config; - - @Dynamic(value = "Added by ModCore Installer later", mixin = ModCoreInstaller.class) - @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 20f41892..6d5548ae 100644 --- a/src/main/resources/mixins.skytils.json +++ b/src/main/resources/mixins.skytils.json @@ -5,6 +5,7 @@ "mixins": [ "AccessorCommandHandler", "AccessorGuiNewChat", + "AccessorSettingsGui", "MixinBlockRendererDispatcher", "MixinBossStatus", "MixinChunk", @@ -29,7 +30,6 @@ "MixinRenderEntityItem", "MixinRenderItem", "MixinRenderLightningBolt", - "MixinSettingsGui", "MixinSlot", "MixinSoundManager", "MixinTileEntityChestRenderer", |