Posted September 3, 201312 yr Hello Guys! I want to use a specific input-function in my mod. For this I need to know how to get a method in MC which is called when a key is pressed. Can you tell me how? Thanks in advance! http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 3, 201312 yr Hello, This could help you (not tested) http://www.minecraftforum.net/topic/1501062-forge-keybinding-help/#entry22666285 ss7 You sir are a god damn hero.
September 3, 201312 yr Author 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? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 3, 201312 yr Listen for the slot change, I'm usure if forge has an event for this, then check if shift is being pressed (EntityPlayer.isSneaking?). Then do what you want.
September 3, 201312 yr 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.
September 3, 201312 yr Author This works, bit you can't stop the normal MC-Function for this.. Is there any Event concerning Keys? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 6, 201312 yr Author Anyone? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 6, 201312 yr 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? If you guys dont get it.. then well ya.. try harder...
September 6, 201312 yr Author 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? 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"? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 6, 201312 yr 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.
September 7, 201312 yr Author 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. Sounds good, but where is this base function??? Couldn't find it anywhere. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
September 7, 201312 yr 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.
September 8, 201312 yr Author 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; } } http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
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.