From 189cb0ee9d3e927e748c5a7b5fa3bb025c5a35b4 Mon Sep 17 00:00:00 2001 From: plastoid501 Date: Wed, 7 Aug 2024 15:10:54 +0900 Subject: [PATCH] fixed https://github.com/Plastoid501/movement-in-gui/issues/2 --- gradle.properties | 2 +- .../java/net/plastoid501/movement/config/Configs.java | 3 +++ .../movement/mixin/ClientPlayerEntityMixin.java | 6 ++++++ .../plastoid501/movement/mixin/KeyboardInputMixin.java | 6 ++++++ src/main/java/net/plastoid501/movement/util/FileUtil.java | 8 ++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index bc76e03..1dde3a8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ yarn_mappings=1.20.4+build.3 loader_version=0.15.11 # Mod Properties -mod_version=1.0.1 +mod_version=1.0.2 maven_group=net.plastoid501.movement archives_base_name=movement-in-gui-mc1.20.4 diff --git a/src/main/java/net/plastoid501/movement/config/Configs.java b/src/main/java/net/plastoid501/movement/config/Configs.java index 5888f25..a1feb97 100644 --- a/src/main/java/net/plastoid501/movement/config/Configs.java +++ b/src/main/java/net/plastoid501/movement/config/Configs.java @@ -11,14 +11,17 @@ public class Configs { public static ToggleConfig modEnable = new ToggleConfig("modEnable", "If true, this mod is enable", true); public static ToggleConfig inCreative = new ToggleConfig("inCreative", "If true, this mod is enable when creative mode.", true); + public static ToggleConfig isAnvil = new ToggleConfig("inCreative", "If true, this mod is enable when open anvil screen.", true); public static ModConfig config; static { toggles.put(modEnable.getId(), modEnable); toggles.put(inCreative.getId(), inCreative); + toggles.put(isAnvil.getId(), isAnvil); jToggles.put(modEnable.getId(), new JToggleConfig(modEnable.isEnable())); jToggles.put(inCreative.getId(), new JToggleConfig(inCreative.isEnable())); + jToggles.put(isAnvil.getId(), new JToggleConfig(isAnvil.isEnable())); config = new ModConfig(jToggles); diff --git a/src/main/java/net/plastoid501/movement/mixin/ClientPlayerEntityMixin.java b/src/main/java/net/plastoid501/movement/mixin/ClientPlayerEntityMixin.java index 29245fb..7ad6f46 100644 --- a/src/main/java/net/plastoid501/movement/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/net/plastoid501/movement/mixin/ClientPlayerEntityMixin.java @@ -3,6 +3,9 @@ import com.terraformersmc.modmenu.gui.ModsScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.*; +import net.minecraft.client.gui.screen.ingame.AnvilScreen; +import net.minecraft.client.gui.screen.ingame.BookEditScreen; +import net.minecraft.client.gui.screen.ingame.SignEditScreen; import net.minecraft.client.gui.screen.option.CreditsAndAttributionScreen; import net.minecraft.client.gui.screen.option.GameOptionsScreen; import net.minecraft.client.gui.screen.option.OptionsScreen; @@ -28,6 +31,9 @@ private boolean modifyTickMovement(KeyBinding instance) { } MinecraftClient client = MinecraftClient.getInstance(); if (client.currentScreen == null || + client.currentScreen instanceof BookEditScreen || + client.currentScreen instanceof SignEditScreen || + (client.currentScreen instanceof AnvilScreen && !Configs.isAnvil.isEnable()) || client.currentScreen instanceof ChatScreen || client.currentScreen instanceof GameOptionsScreen || client.currentScreen instanceof GameMenuScreen || diff --git a/src/main/java/net/plastoid501/movement/mixin/KeyboardInputMixin.java b/src/main/java/net/plastoid501/movement/mixin/KeyboardInputMixin.java index 18e84d8..fb9c78d 100644 --- a/src/main/java/net/plastoid501/movement/mixin/KeyboardInputMixin.java +++ b/src/main/java/net/plastoid501/movement/mixin/KeyboardInputMixin.java @@ -3,6 +3,9 @@ import com.terraformersmc.modmenu.gui.ModsScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.*; +import net.minecraft.client.gui.screen.ingame.AnvilScreen; +import net.minecraft.client.gui.screen.ingame.BookEditScreen; +import net.minecraft.client.gui.screen.ingame.SignEditScreen; import net.minecraft.client.gui.screen.option.CreditsAndAttributionScreen; import net.minecraft.client.gui.screen.option.GameOptionsScreen; import net.minecraft.client.gui.screen.option.OptionsScreen; @@ -28,6 +31,9 @@ private boolean modifyTick(KeyBinding instance) { } MinecraftClient client = MinecraftClient.getInstance(); if (client.currentScreen == null || + client.currentScreen instanceof BookEditScreen || + client.currentScreen instanceof SignEditScreen || + (client.currentScreen instanceof AnvilScreen && !Configs.isAnvil.isEnable()) || client.currentScreen instanceof ChatScreen || client.currentScreen instanceof GameOptionsScreen || client.currentScreen instanceof GameMenuScreen || diff --git a/src/main/java/net/plastoid501/movement/util/FileUtil.java b/src/main/java/net/plastoid501/movement/util/FileUtil.java index 1936e85..d2621e0 100644 --- a/src/main/java/net/plastoid501/movement/util/FileUtil.java +++ b/src/main/java/net/plastoid501/movement/util/FileUtil.java @@ -123,6 +123,14 @@ public static void updateConfigs() { } Configs.inCreative = new ToggleConfig(Configs.inCreative.getId(), Configs.inCreative.getNarrator(), toggleConfig.isEnable()); + toggleConfig = config.getToggles().get(Configs.isAnvil.getId()); + if (toggleConfig == null) { + flag = true; + toggleConfig = new JToggleConfig(Configs.isAnvil.isEnable()); + config.getToggles().put(Configs.isAnvil.getId(), toggleConfig); + } + Configs.isAnvil = new ToggleConfig(Configs.isAnvil.getId(), Configs.isAnvil.getNarrator(), toggleConfig.isEnable()); + if (flag) { return; }