Jump to content

Recommended Posts

Posted

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.

Posted

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...

Posted

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"?

Posted

This works, bit you can't stop the normal MC-Function for this.. Is there any Event concerning Keys?

 

If you're overriding the base function then it shouldn't get called unless you do something like super.keyDown(). Minecraft must have some other listener active to get the keypress.

Posted

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.

Posted

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;
        	}
        }

 

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.