diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-06-04 01:06:51 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-06-04 01:06:51 +0200 |
| commit | 2a1631dadfc0f78eb3b7768f9bca3f9fa1ea619e (patch) | |
| tree | 422f0d17f4ee40e930a1a84ca9f0d76b4acd3e7c /src/main/java | |
| parent | 9ad691bc1ba5f50d89a9c99cbf950fe2390a5a44 (diff) | |
| download | Firmament-2a1631dadfc0f78eb3b7768f9bca3f9fa1ea619e.tar.gz Firmament-2a1631dadfc0f78eb3b7768f9bca3f9fa1ea619e.tar.bz2 Firmament-2a1631dadfc0f78eb3b7768f9bca3f9fa1ea619e.zip | |
feat: Add basic combo buttons (without editor for now)
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java b/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java index 48f3c23..d2b3f91 100644 --- a/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java @@ -2,18 +2,19 @@ package moe.nea.firmament.mixins; +import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import moe.nea.firmament.events.WorldKeyboardEvent; import net.minecraft.client.Keyboard; +import net.minecraft.client.util.InputUtil; 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.CallbackInfo; @Mixin(Keyboard.class) public class KeyPressInWorldEventPatch { - @Inject(method = "onKey", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/KeyBinding;onKeyPressed(Lnet/minecraft/client/util/InputUtil$Key;)V")) - public void onKeyBoardInWorld(long window, int key, int scancode, int action, int modifiers, CallbackInfo ci) { - WorldKeyboardEvent.Companion.publish(new WorldKeyboardEvent(key, scancode, modifiers)); - } + @WrapWithCondition(method = "onKey", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/KeyBinding;onKeyPressed(Lnet/minecraft/client/util/InputUtil$Key;)V")) + public boolean onKeyBoardInWorld(InputUtil.Key key, long window, int _key, int scancode, int action, int modifiers) { + var event = WorldKeyboardEvent.Companion.publish(new WorldKeyboardEvent(_key, scancode, modifiers)); + return !event.getCancelled(); + } } |
