Posted December 8, 201410 yr good in other days play whith applets i cand bind a keyboard key to some funcion in java using an actionListener like jump when hit spacebar but in minecraft what is the name of the class in charge of this, ? and there is this menu to change the keybinds that every mod uses how do you do for the mod to be settable in the options / controls menu
December 8, 201410 yr You have to make KeyHandler with subscription to Forge Tick Event (client side) and make KeyBinding. Look for KeyBinding tutorials. Alredy gave some example in other thread, link: http://www.minecraftforge.net/forum/index.php/topic,25751.msg131395.html#msg131395 1.7.10 is no longer supported by forge, you are on your own.
December 9, 201410 yr Author jumm i just folow this http://www.minecraftforge.net/wiki/Key_Binding soo in mi folder forge-1.8-11.14.0.1261-1.8-src/src/main/java/mercenarymod/utilidades/ i create //KeyBindings.java //__________________________________________________________ package mercenarymod.utilidades; import org.lwjgl.input.Keyboard; //import net.java.games.input.Keyboard; import net.minecraft.client.settings.KeyBinding; import net.minecraftforge.fml.client.registry.ClientRegistry; public class KeyBindings { // Declare two KeyBindings, ping and pong public static KeyBinding ping; public static KeyBinding pong; public static void init() { // Define the "ping" binding, with (unlocalized) name "key.ping" and // the category with (unlocalized) name "key.categories.mymod" and // key code 24 ("O", LWJGL constant: Keyboard.KEY_O) ping = new KeyBinding("key.ping", Keyboard.KEY_O, "key.categories.MercenaryMod"); // Define the "pong" binding, with (unlocalized) name "key.pong" and // the category with (unlocalized) name "key.categories.mymod" and // key code 25 ("P", LWJGL constant: Keyboard.KEY_P) pong = new KeyBinding("key.pong", Keyboard.KEY_P, "key.categories.MercenaryMod"); // Register both KeyBindings to the ClientRegistry ClientRegistry.registerKeyBinding(ping); ClientRegistry.registerKeyBinding(pong); } } //_____________________________________________________________ //and create too //KeyInputHandler.java //_____________________________________________________________ package mercenarymod.utilidades; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; //import cpw.mods.fml.common.eventhandler.SubscribeEvent; //import cpw.mods.fml.common.gameevent.InputEvent; public class KeyInputHandler { @SubscribeEvent public void onKeyInput(InputEvent.KeyInputEvent event) { if(KeyBindings.ping.isPressed()) System.out.println("ping"); if(KeyBindings.pong.isPressed()) System.out.println("pong"); } } //_____________________________________________________________ ¿but where the fucks goes this line? FMLCommonHandler.instance().bus().register(new mercenarymod.utilidades.KeyBindings()); putit in preinit, noting happen when press 'p' or 'o' nothing in the controls menu putit in init, noting happen when press 'p' or 'o' nothing in the controls menu putit in postinit, noting happen when press 'p' or 'o' nothing in the controls menu all the code seems to be rigth in eclipse.
December 9, 201410 yr Author i just get this fixed in google i found another tutorial but this was complete the trouble is there is a mising line FMLCommonHandler.instance().bus().register(new mercenarymod.utilidades.KeyInputHandler()); mercenarymod.utilidades.KeyBindings.init(); and the two lines must be in preinit. so first create KeyBindings.java then second create KeyInputHandler.java thirth put the two lines in the preinit of the principal class in my case Mercenary.java the other tutorial. http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/modification-development/2112337-1-7-2-forge-help-gui-tutorial and my principal class //________________________________________________________- // Mercenary.java package mercenarymod; import mercenarymod.blocks.MercenaryModBlocks; import mercenarymod.items.MercenaryModItems; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @Mod(modid = Mercenary.MODID, version = Mercenary.VERSION) public class Mercenary { public static final String MODID = "modmercenario"; public static final String VERSION = "1.1"; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { Configuration config = new Configuration(event.getSuggestedConfigurationFile()); MercenaryModBlocks.init(); MercenaryModItems.init(); MercenaryModRecipes.init(); FMLCommonHandler.instance().bus().register(new mercenarymod.utilidades.KeyInputHandler()); mercenarymod.utilidades.KeyBindings.init(); } @Mod.EventHandler public void init(FMLInitializationEvent event) { MercenaryModTexturas.init(); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { } public static CreativeTabs herramientas = new CreativeTabs("Herraminetas armas y armaduras mercenarias") { @Override @SideOnly(Side.CLIENT) public Item getTabIconItem() { return MercenaryModItems.aceroMercenario; } }; public static CreativeTabs materiales = new CreativeTabs("materiales mercenarios") { @Override @SideOnly(Side.CLIENT) public Item getTabIconItem() { return MercenaryModItems.nokiaMercenaria; } }; }//fin de la clase
February 5, 201510 yr Yes, that solves the problem, and yet nobody of You guys bothered to fix the wiki page so I did, shame on You !
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.