Jump to content

Keyboard usage


Bedrock_Miner

Recommended Posts

Looks nice, but can I also use this for Keys minecraft uses?

 

I want to set special functions to the keys 1 to 9 and to key 0.

But keys 1 to 9 are used in MC to switch the selected Inventory slot. This should happen, if you press the key (1 to 9) and Shift at the same time.

Can I do this and how?

Link to comment
Share on other sites

Hello,

 

This should also work:

 

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) 
{
    if (tickEnd) 
    {
        if(kb.keyCode == Key.KEY_0) //OR WHATEVER KEY YOU LIKE
        {
             //DO SOMETHING
        }
    }
}

 

ss7

You sir are a god damn hero.

Link to comment
Share on other sites

Hmm in order to stop the vanilla function for those methods you will either have to prevent them from firing their given methods or change the default keybindings to something obscure so they won't get hit at all I guess?

:P

 

 

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Hmm in order to stop the vanilla function for those methods you will either have to prevent them from firing their given methods or change the default keybindings to something obscure so they won't get hit at all I guess?

:P

Yes, but how can I stop the vanilla methods?

Or: How can I change the Keybindings from my Mod?

 

PS: Nooby question: Why does everybody call normal-minecraft-stuff "vanilla"?

Link to comment
Share on other sites

Hardcoded in Minecraft class.

for (i = 0; i < 9; ++i)
                        {
                            if (Keyboard.getEventKey() == 2 + i)
                            {
                                this.thePlayer.inventory.currentItem = i;
                            }
                        }

This means you can't change it.

Link to comment
Share on other sites

Hardcoded in Minecraft class.

for (i = 0; i < 9; ++i)
                        {
                            if (Keyboard.getEventKey() == 2 + i)
                            {
                                this.thePlayer.inventory.currentItem = i;
                            }
                        }

This means you can't change it.

Thank you for this information... I thing I hadn't find this on my own.

 

I worked a little bit and now I've got the function I want to have..

For anyone who is interested in this I post it here:

Method from my TickHandler:

public void onEndTickInGame()
        {
        	if (mc.thePlayer != null) if (mc.thePlayer.inventory!= null) //Avoid an NPE
        	{        	
        		for (int i = 1; i <= 10; i ++)
        		{
        			if (Keyboard.getEventKey() == i+1) //Keys 1 to 9 and Key 0
        			{
        				if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) //If Shift is pressed, normal function
        				{
        					this.mc.thePlayer.inventory.currentItem = Main.clientProxy.prevHeldItem; //Reset normal function if shift isn't pressed.
        					
        					if (Keyboard.isKeyDown(i+1)) //To stop multi-call after releasing the key
        					{
        						if (!KeyDown)
        						{
        							System.out.println(Keyboard.getKeyName(i+1));
        							//Do anything...
        							KeyDown = true;
        						}
        					} else KeyDown = false;
        				}
        			}
        		}
        		Main.clientProxy.prevHeldItem = this.mc.thePlayer.inventory.currentItem;
        	}
        }

 

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.

Announcements



×
×
  • Create New...

Important Information

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