nisser Posted November 23, 2019 Posted November 23, 2019 I'm very new to minecraft modding, yet i have some Java experience. For starters, i want to make a simple mod that uses one keybind, basically you press "N" and (for example) a sound is played. Tried to find a solution myself but no luck so far, so any help would be much appreciated. Quote
deerangle Posted November 24, 2019 Posted November 24, 2019 have a look at this: http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-keybinding.html Quote
nenikitov Posted November 24, 2019 Posted November 24, 2019 How I did my key bindings: I created a class "KeyBindingList": (342 is a integer assigned to left alt key. Idk why, i couldnt get Keyboard.KEY_LALT to work, so i used a trich with writing the ingeer directly. IF you will need to do like I did, when all the code is setup and you are in game, you can press any key and it should write the integer in the console) public class KeyBindingList { public static KeyBinding[] ModKeyBindings; public static void register() { ModKeyBindings = new KeyBinding[1]; //Create array //Assign all key binds to this array ModKeyBindings[0] = new KeyBinding("KEY.MODID.ACTION", 342, "KEY.MODID.category"); //Actually register all keys for (int i = 0; i < ModKeyBindings.length; ++i) { ClientRegistry.registerKeyBinding(ModKeyBindings[i]); } } Dont foger to replace MODID and ACTION in "key.MODID.ACTION" and "key.MODID.category" with your modid and action that you want to make. Then I created a class "KeyBindingList": public class ModInputHandler { @SubscribeEvent public void onKeyInput(KeyInputEvent event) { System.out.println(event.getKey()); if (KeyBindingList.ModKeyBindings[0].isPressed()) //If first key is pressed { System.out.println("KEY IS PRESSED"); } } } Then in my mod class in the setup void I added: MinecraftForge.EVENT_BUS.register(new ModInputHandler()); Dont forget to add these lines into your en_us: "key.MODID.ACTION": "ACTION NAME", "key.MODID.category": "CATEGORY NAME", Of course with changing MODID, ACTION, ACTION NAME and CATEGORY NAME. After all of this you should have a category in Control Settings with your CATEGORY NAME and you will be able to rebind it to whatever you like. In game, it should print in console KEY IS PRESSED whenever your key is pressed. Hope this helps. Quote
Cadiboo Posted November 25, 2019 Posted November 25, 2019 You shouldn’t use the key input event, you should use the client tick event IIRC. https://github.com/Cadiboo/NoCubes/blob/2cebf4e0e61eac96ab8490d3830f35953a8e9575/src/main/java/io/github/cadiboo/nocubes/client/ClientEventSubscriber.java#L89-L223 Quote About Me Reveal hidden contents My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
Recommended Posts
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.