Jump to content

Get if key pressed for PlayerEntity


SiniKraft

Recommended Posts

Hello,

I have an item which call a procedure each inventory tick.

This item overrides Player motion vector to 0.

However, the player can't jump.

How can I get if the jump key is pressed, on PlayerEntity ? Is there sth like player.isKeyPressed(...) or do i need to register an event for this ? If so, how ?

PS: 1.16.5

Thanks in advance !

Link to comment
Share on other sites

You can make a Keybind for this. This isn't very hard. The problem is that the player can change the key for triggering the Keybind.

I wouldn't make a keybind, I just wouldn't change the y value of the player motion vector (set it to playerMotionVector.y).

Sorry if my Posts are weird sometimes, I just try to help and learn as much as I can :D

Also: PLEASE use SPOILERS for logs!

Link to comment
Share on other sites

Thanks for your advice !!! 

Now all the things I wanted works except the KeyBind change. 

The Keybind is only defined on jump key when the Keybind wasn't in options.txt

So now what I want is setting My KeyBind to the key defined for jump by player Each time world is loaded. 

How can I do that ?

Link to comment
Share on other sites

Thanks for you reply. But ... How can I bind my custom keybind to this key ??? I tried

KeyBinding keys;
keys = new KeyBinding("key.example_mod.jump", GLFW.GLFW_KEY_SPACE, "key.categories.movement");
keys.bind(Minecraft.getInstance().gameSettings.keyBindJump.getKey());

and

KeyBinding keys;
keys = new KeyBinding("key.example_mod.jump", Minecraft.getInstance().gameSettings.keyBindJump.getKey(), "key.categories.movement");

and replacing the get key method with the one you provided

Minecraft.getInstance().options.keyJump.getKey()

But nothing works ! It compiles but doesn't change my keybind if i have modified it in the Minecraft settings gui.

What can I do ???

Thanks a lot !!!

Link to comment
Share on other sites

The keybind has a method for this, doesn't it?

Edit: Are you trying to modify the default value or change it back to space on change through player?

Edited by OutCraft

Sorry if my Posts are weird sometimes, I just try to help and learn as much as I can :D

Also: PLEASE use SPOILERS for logs!

Link to comment
Share on other sites

I want to set my Custom KeyBind Key to the key selected for jump by player. How can I do that ???

I don't want to change the default value, which is space, but wants to set My keybind to the jump's one.

For example A player jump with K. If he changed my custom keybind to S I want it to set to K.

Thanks

Link to comment
Share on other sites

I would make a ClientTickEvent in my EventBusSubscriber and change the key to the jump key there. The keybind has a method for changing the key, pass in 

On 12/11/2021 at 10:47 AM, OutCraft said:
Minecraft.getInstance().options.keyJump.getKey()

 

 

Sorry if my Posts are weird sometimes, I just try to help and learn as much as I can :D

Also: PLEASE use SPOILERS for logs!

Link to comment
Share on other sites

3 minutes ago, diesieben07 said:

check the vanilla key binding

How do you check the vanilla keybind?

Just like a custom?

Edited by OutCraft

Sorry if my Posts are weird sometimes, I just try to help and learn as much as I can :D

Also: PLEASE use SPOILERS for logs!

Link to comment
Share on other sites

Thanks for your help :D but ... So If I want to check when the player press the vanilla jump keybind, how can I do this ?

I know I can register a onKeyPressed event,

but I can't figure how to check if jump key is pressed. Because

Minecraft.getInstance().options.keyJump.getKey()

Return the key selected, but not if this key was pressed. How can I check ?

Thanks a lot for your help :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.