|
@Inject(method = "keyPress", at = @At(value = "INVOKE", |
|
target = "Lnet/minecraft/client/gui/screens/Screen;wrapScreenError(Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;)V", |
|
ordinal = 0), cancellable = true) |
|
public void onKey(long long_1, int int_1, int int_2, int int_3, int int_4, CallbackInfo info) { |
|
if (!info.isCancelled()) { |
|
if (int_3 != 1 && int_3 != 2) { |
|
if (int_3 == 0) { |
|
var result = ClientScreenInputEvent.KEY_RELEASED_PRE.invoker().keyReleased(minecraft, minecraft.screen, int_1, int_2, int_4); |
|
if (result.isPresent()) |
|
info.cancel(); |
|
} |
|
} else { |
|
var result = ClientScreenInputEvent.KEY_PRESSED_PRE.invoker().keyPressed(minecraft, minecraft.screen, int_1, int_2, int_4); |
|
if (result.isPresent()) |
|
info.cancel(); |
|
} |
|
} |
|
} |
|
|
|
@Inject(method = "keyPress", at = @At(value = "INVOKE", |
|
target = "Lnet/minecraft/client/gui/screens/Screen;wrapScreenError(Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;)V", |
|
ordinal = 0, shift = At.Shift.AFTER), |
|
cancellable = true) |
|
public void onKeyAfter(long long_1, int int_1, int int_2, int int_3, int int_4, CallbackInfo info, @Local Screen screen, @Local boolean[] bls) { |
|
if (!info.isCancelled() && !bls[0]) { |
|
EventResult result; |
|
if (int_3 != 1 && int_3 != 2) { |
|
result = ClientScreenInputEvent.KEY_RELEASED_POST.invoker().keyReleased(minecraft, screen, int_1, int_2, int_4); |
|
} else { |
|
result = ClientScreenInputEvent.KEY_PRESSED_POST.invoker().keyPressed(minecraft, screen, int_1, int_2, int_4); |
|
} |
|
if (result.isPresent()) |
|
info.cancel(); |
|
} |
|
} |