diff options
| author | Elis Eriksson <Spelis@duck.com> | 2025-11-23 15:50:13 +0100 |
|---|---|---|
| committer | Elis Eriksson <Spelis@duck.com> | 2025-11-23 15:50:13 +0100 |
| commit | 2ea463b870152586428c14fbbc5bdb60a232ca4f (patch) | |
| tree | 70fedd889b8fab8a5e3c962e71383e2a74be9576 /src/client | |
| parent | 9c99aa9fc8ce39c412e3acd8a77864e638bb0769 (diff) | |
| download | valvesprint-master.tar valvesprint-master.tar.gz valvesprint-master.tar.bz2 valvesprint-master.tar.lz valvesprint-master.tar.xz valvesprint-master.tar.zst valvesprint-master.zip | |
add compatibility i guess, and commit some more changes i made at some point idkmaster
Diffstat (limited to 'src/client')
3 files changed, 32 insertions, 10 deletions
diff --git a/src/client/java/eu/projnull/spelis/valvesprint/client/KeybindCompat.java b/src/client/java/eu/projnull/spelis/valvesprint/client/KeybindCompat.java new file mode 100644 index 0000000..ed7f427 --- /dev/null +++ b/src/client/java/eu/projnull/spelis/valvesprint/client/KeybindCompat.java @@ -0,0 +1,29 @@ +package eu.projnull.spelis.valvesprint.client; + +import net.minecraft.client.option.KeyBinding; +import net.minecraft.client.util.InputUtil; +import org.lwjgl.glfw.GLFW; + +import java.lang.reflect.Constructor; + +public class KeybindCompat { + + public static KeyBinding createKeybind() { + String id = "key.valvesprint.walk"; + int glfwKey = GLFW.GLFW_KEY_LEFT_SHIFT; + try { + Constructor<KeyBinding> newest = KeyBinding.class.getConstructor(String.class, InputUtil.Type.class, int.class, KeyBinding.Category.class); + return newest.newInstance(id, InputUtil.Type.KEYSYM, glfwKey, KeyBinding.Category.MOVEMENT); + } catch (NoSuchMethodException | NoClassDefFoundError e1) { + try { + Constructor<KeyBinding> old = KeyBinding.class.getConstructor(String.class, InputUtil.Type.class, int.class, String.class); + return old.newInstance(id, InputUtil.Type.KEYSYM, glfwKey, "key.categories.movement"); + } catch (Exception e2) { + throw new RuntimeException("Cannot create keybind: unsupported MC version", e2); + } + } catch (Exception ex) { + throw new RuntimeException("Failed to create keybind", ex); + } + } + +} diff --git a/src/client/java/eu/projnull/spelis/valvesprint/client/ValveSprintClient.java b/src/client/java/eu/projnull/spelis/valvesprint/client/ValveSprintClient.java index 5b79ec1..a7cf564 100644 --- a/src/client/java/eu/projnull/spelis/valvesprint/client/ValveSprintClient.java +++ b/src/client/java/eu/projnull/spelis/valvesprint/client/ValveSprintClient.java @@ -4,23 +4,16 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.option.KeyBinding; -import net.minecraft.client.util.InputUtil; -import org.lwjgl.glfw.GLFW; public class ValveSprintClient implements ClientModInitializer { - private KeyBinding walkBind = KeyBindingHelper.registerKeyBinding(new KeyBinding( - "key.valvesprint.walk", - InputUtil.Type.KEYSYM, - GLFW.GLFW_KEY_LEFT_SHIFT, - "key.categories.movement" - )); + private final KeyBinding walkBind = KeyBindingHelper.registerKeyBinding(KeybindCompat.createKeybind()); @Override public void onInitializeClient() { ClientTickEvents.START_CLIENT_TICK.register(client -> { if (client.player != null) { if (client.player.input.hasForwardMovement()) { - client.player.setSprinting(!walkBind.isPressed() && !client.player.isSneaking()); + client.player.setSprinting(!walkBind.isPressed()); } } }); diff --git a/src/client/resources/valvesprint.client.mixins.json b/src/client/resources/valvesprint.client.mixins.json index 9244d67..a406851 100644 --- a/src/client/resources/valvesprint.client.mixins.json +++ b/src/client/resources/valvesprint.client.mixins.json @@ -1,7 +1,7 @@ { "required": true, "minVersion": "0.8", - "package": "eu.projnull.spelis.valvesprint.mixin.client", + "package": "eu.projnull.spelis.valvesprint.client.mixins", "compatibilityLevel": "JAVA_8", "client": [ ], |
