diff --git a/src/main/java/io/wispforest/okboomer/OkBoomer.java b/src/main/java/io/wispforest/okboomer/OkBoomer.java index ac3cbe8..7a279ba 100644 --- a/src/main/java/io/wispforest/okboomer/OkBoomer.java +++ b/src/main/java/io/wispforest/okboomer/OkBoomer.java @@ -53,12 +53,11 @@ public void onInitializeClient() { && InputUtil.isKeyPressed(client.getWindow().getHandle(), KeyBindingHelper.getBoundKeyOf(ROTAT_BINDING).getCode()) && ((Screen.hasControlDown() && Screen.hasShiftDown()) || currentlyRotatIng); - if (booming != BOOM_BINDING.isPressed()) { - boolean nowBooming = false; - while (BOOM_BINDING.wasPressed()) { - nowBooming = true; - } + boolean nowBooming = KeyBindingHelper.getBoundKeyOf(BOOM_BINDING).getCode() > 0 + && InputUtil.isKeyPressed(client.getWindow().getHandle(), KeyBindingHelper.getBoundKeyOf(BOOM_BINDING).getCode()) + && client.currentScreen == null; + if (booming != nowBooming) { if (booming) { boomDivisor = 1; client.options.smoothCameraEnabled = smoothCameraRestoreValue; diff --git a/src/main/java/io/wispforest/okboomer/mixin/KeyBindingMixin.java b/src/main/java/io/wispforest/okboomer/mixin/KeyBindingMixin.java new file mode 100644 index 0000000..8452041 --- /dev/null +++ b/src/main/java/io/wispforest/okboomer/mixin/KeyBindingMixin.java @@ -0,0 +1,19 @@ +package io.wispforest.okboomer.mixin; + +import io.wispforest.okboomer.OkBoomer; +import net.minecraft.client.option.KeyBinding; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(KeyBinding.class) +public class KeyBindingMixin { + + @Inject(method = "equals", at = @At("HEAD"), cancellable = true) + private void markCompatible(KeyBinding other, CallbackInfoReturnable cir) { + if (other != OkBoomer.BOOM_BINDING && (Object) this != OkBoomer.BOOM_BINDING) return; + cir.setReturnValue(false); + } + +} diff --git a/src/main/resources/ok-boomer.mixins.json b/src/main/resources/ok-boomer.mixins.json index f351609..e5465d8 100644 --- a/src/main/resources/ok-boomer.mixins.json +++ b/src/main/resources/ok-boomer.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_17", "client": [ "GameRendererMixin", + "KeyBindingMixin", "MouseMixin" ], "injectors": {