diff --git a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch index a5386e6b13..affbeca4f3 100644 --- a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch +++ b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch @@ -20,7 +20,7 @@ if (astring[0].equals("key_" + keybinding.func_151464_g())) { keybinding.func_151462_b(Integer.parseInt(astring[1])); -+ if (astring.length == 3) keybinding.setKeyModifierAndCode(net.minecraftforge.client.settings.KeyModifier.valueOf(astring[2]), Integer.parseInt(astring[1])); ++ if (astring.length == 3) keybinding.setKeyModifierAndCode(net.minecraftforge.client.settings.KeyModifier.valueFromString(astring[2]), Integer.parseInt(astring[1])); } } diff --git a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java index 9838251dac..b5ff9a875a 100644 --- a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java +++ b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java @@ -120,6 +120,22 @@ public enum KeyModifier { return false; } + public static KeyModifier valueFromString(String stringValue) + { + try + { + return valueOf(stringValue); + } + catch (NullPointerException ignored) + { + return NONE; + } + catch (IllegalArgumentException ignored) + { + return NONE; + } + } + public abstract boolean matches(int keyCode); public abstract boolean isActive();