Skip to content

Commit

Permalink
Fixed Figura resetting other mod's keybinds
Browse files Browse the repository at this point in the history
Fixed other keybind saving related issues
Added a dev property to run with mod menu
  • Loading branch information
UnlikePaladin committed Dec 10, 2023
1 parent 1b50c36 commit ad5af9f
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 2 deletions.
1 change: 0 additions & 1 deletion common/src/main/java/org/figuramc/figura/FiguraMod.java
Expand Up @@ -58,7 +58,6 @@ public static boolean debugModeEnabled() {
public static void onClientInit() {
// init managers
EntryPointManager.init();
ConfigManager.init();
PermissionManager.init();
LocalAvatarFetcher.init();
CacheAvatarLoader.init();
Expand Down
Expand Up @@ -25,7 +25,10 @@ public void setKey(InputConstants.Key boundKey) {

config.value = config.tempValue = this.saveString();
ConfigManager.saveConfig();
}

// Moved from setKey as it caused issues on Forge because the vanilla config overriden before it was loaded properly
public void saveConfigChanges() {
Options options = Minecraft.getInstance().options;
if (options != null) options.save();

Expand Down
Expand Up @@ -4,6 +4,7 @@
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.network.chat.Component;
import org.figuramc.figura.FiguraMod;
import org.figuramc.figura.config.ConfigKeyBind;
import org.figuramc.figura.config.ConfigType;
import org.figuramc.figura.config.Configs;
import org.figuramc.figura.gui.widgets.KeybindWidgetHelper;
Expand Down Expand Up @@ -32,6 +33,7 @@ public KeybindElement(int width, ConfigType.KeybindConfig config, ConfigList par
children.remove(resetButton);
children.add(resetButton = new ParentedButton(getX() + width - 60, getY(), 60, 20, Component.translatable("controls.reset"), this, button -> {
binding.setKey(binding.getDefaultKey());
((ConfigKeyBind)binding).saveConfigChanges();
parentList.updateKeybinds();
}));

Expand Down
Expand Up @@ -6,6 +6,7 @@
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.util.Mth;
import org.figuramc.figura.FiguraMod;
import org.figuramc.figura.config.ConfigKeyBind;
import org.figuramc.figura.config.ConfigManager;
import org.figuramc.figura.config.ConfigType;
import org.figuramc.figura.gui.screens.ConfigScreen;
Expand Down Expand Up @@ -138,6 +139,9 @@ public boolean updateKey(InputConstants.Key key) {
return false;

focusedBinding.setKey(key);
if (focusedBinding instanceof ConfigKeyBind)
((ConfigKeyBind)focusedBinding).saveConfigChanges();

focusedBinding = null;
FiguraMod.processingKeybind = false;

Expand Down
8 changes: 7 additions & 1 deletion fabric/build.gradle
Expand Up @@ -53,7 +53,13 @@ dependencies {
include(modCompileOnly(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api)))
}
// Mods
modCompileOnly "maven.modrinth:modmenu:$modmenu"
if (rootProject.run_with_modmenu == "true") {
modRuntimeOnly(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api))
modRuntimeOnly(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api))
modImplementation("maven.modrinth:modmenu:$modmenu")
} else {
modCompileOnly("maven.modrinth:modmenu:$modmenu")
}

common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false }
Expand Down
Expand Up @@ -6,11 +6,13 @@
import net.minecraft.server.packs.PackType;
import org.figuramc.figura.FiguraMod;
import org.figuramc.figura.commands.fabric.FiguraCommandsFabric;
import org.figuramc.figura.config.ConfigManager;
import org.figuramc.figura.utils.fabric.FiguraResourceListenerImpl;

public class FiguraModFabric extends FiguraMod implements ClientModInitializer {
@Override
public void onInitializeClient() {
ConfigManager.init();
onClientInit();
FiguraCommandsFabric.init();
// we cast here to the impl that implements synchronous as the manager wants
Expand Down
Expand Up @@ -17,6 +17,7 @@
import org.figuramc.figura.FiguraMod;
import org.figuramc.figura.avatar.Avatar;
import org.figuramc.figura.avatar.AvatarManager;
import org.figuramc.figura.config.ConfigManager;
import org.figuramc.figura.config.forge.ModConfig;
import org.figuramc.figura.gui.forge.GuiOverlay;
import org.figuramc.figura.gui.forge.GuiUnderlay;
Expand Down Expand Up @@ -65,6 +66,8 @@ public static void cancelVanillaOverlays(RenderGuiOverlayEvent.Pre event) {

@SubscribeEvent
public static void registerKeyBinding(RegisterKeyMappingsEvent event) {
// Config has to be initialized here, so that the keybinds exist on time
ConfigManager.init();
for (KeyMapping value : KEYBINDS) {
if(value != null)
event.register(value);
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Expand Up @@ -46,6 +46,7 @@ quilt_fabric_api_version = 7.1.0+0.86.1-1.20.1

# Extra properties
run_on_quilt = false
run_with_modmenu = false
jarVersion

# To run on quilt you must set this to true and go to fabric/gradle.properties to uncomment "loom.platform = quilt",
Expand Down

0 comments on commit ad5af9f

Please sign in to comment.