Problèmes de keybinding en 1.7.10



  • Bonjour à tous, j'éprouve des difficultés à faire fonctionner le keybind de mon code:

    package com.LeVerre.rinamod;
    
    import org.lwjgl.input.Keyboard;
    
    import cpw.mods.fml.client.registry.ClientRegistry;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.event.entity.living.LivingDeathEvent;
    
    @Mod(modid = Main.MODID, version = Main.VERSION)
    public class Main
    {
        public static final String MODID = "rinamod";
        public static final String VERSION = "1.0";
        //public static KeyBinding menu= new KeyBinding("Menu", Keyboard.KEY_Y, "\2474R\2476i\247en\247aa\247bM\2473o\2471d"); 
        
        public static Minecraft mc = Minecraft.getMinecraft();
        
        private static KeyBinding menu;
        
        public Main()
        {
            menu = new KeyBinding("Menu", Keyboard.KEY_T, "\2474R\2476i\247en\247aa\247bM\2473o\2471d");
            ClientRegistry.registerKeyBinding(menu);
        }
    
        @EventHandler
        public void init(FMLInitializationEvent event)
        {
        	MinecraftForge.EVENT_BUS.register(this);
        	
        	    	ClientRegistry.registerKeyBinding(menu);    	
        	
        }
         
        
        public void onEvent(KeyInputEvent event)
        {
            if(menu.isPressed())
            {
                OpenMenu();
            }
        }
     
        private void OpenMenu() {
    		
        	System.out.println("TEST");
    		
    	}
    

    Dans les contrôles de minecraft je le vois mais il n'y a aucune action.
    J'éspère que vous pourrez m'aider et merci d'avoir regardé.



  • yo, deja les keybind c'est client-side-only, donc rien a faire dans la main class, je te conseille de mettre ça dans ton client proxy, de plus je vois pas pourquoi tu init ton KeyBind dans le constructeur de ta Main class, init plutôt ça en une seul ligne, sous la forme d'une constante =>
    public static final Keybinding MY_KEY_BINDING = new Keybinding(...);



  • N'oublie pas le @EventSubscribe au dessus de ta fonction concernant l'évenèment de détection de l'appuie sur la touche du clavier.



  • c'est @SubscribeEvent pour annoter une fonction en tant qu'event et @EventBusSubscriber pour notifier forge comme quoi cette class contient des fonctions potentiellement annoter en tant qu'event et qui doivent etre interprété comme tel


Log in to reply