Jump to content

SkelletonX

Members
  • Posts

    15
  • Joined

  • Last visited

Posts posted by SkelletonX

  1. I want you to repeat the messages sent with delay. 

    example, every 5 seconds will send a message ( Minecraft.getMinecraft().thePlayer.sendChatMessage("teste"); )

    What can I use to do this? Scheduler exist in forge?

     

    	@SideOnly(Side.CLIENT)
    	@SubscribeEvent(priority=EventPriority.NORMAL, receiveCanceled=true)
    	public void onTickEvent(TickEvent.ClientTickEvent event) {
    		if(event.phase == TickEvent.Phase.END) {
    			if (mc.inGameHasFocus) {
    				if (keys[3].isKeyDown()) {
    					Minecraft.getMinecraft().thePlayer.sendChatMessage(Ini.getIni("Loja"));
    				}
    			}
    		}
    	}

     

  2. @jabelar my new KeybindHandler

    package com.skelletonx.MacroSK.handler;
    
    import org.lwjgl.input.Keyboard;
    
    import com.skelletonx.MacroSK.util.LogHelper;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
    import net.minecraftforge.fml.client.registry.ClientRegistry;
    import net.minecraftforge.fml.common.eventhandler.EventPriority;
    
    public class KeybindHandler {
    	
    	public static KeyBinding[] keyBindings;
    	private final Minecraft mc;
    
    	public KeybindHandler(Minecraft mc) {
    		this.mc = mc;
    		
    		keyBindings = new KeyBinding[2]; 
    		  
    		// instantiate the key bindings
    		keyBindings[0] = new KeyBinding("key.structure.desc", Keyboard.KEY_P, "key.magicbeans.category");
    		keyBindings[1] = new KeyBinding("key.hud.desc", Keyboard.KEY_H, "key.magicbeans.category");
    		  
    		// register all the key bindings
    		for (int i = 0; i < keyBindings.length; ++i) 
    		{
    		    ClientRegistry.registerKeyBinding(keyBindings[i]);
    		    LogHelper.info("Register KeyBindings >> " + keyBindings[i]);
    		}
    	}
    	
    	@SubscribeEvent(priority= EventPriority.HIGH)
    	public void onEvent(KeyInputEvent event) {
    		
    		LogHelper.info("onEvent");
    	    KeyBinding[] keyBindings = KeybindHandler.keyBindings;
    	    
    	    if (keyBindings[0].isPressed()) 
    	    {
    	        // DEBUG
    	        LogHelper.info("Key binding ="+keyBindings[0].getKeyDescription());
    	            
    	        // do stuff for this key binding here
    	        // remember you may need to send packet to server
    	        Minecraft.getMinecraft().thePlayer.sendChatMessage(" TEST ");
    	    }
    	    if (keyBindings[1].isKeyDown()) 
    	    {
    	        // DEBUG
    	    	LogHelper.info("Key binding ="+keyBindings[1].getKeyDescription());
    	            
    	        // do stuff for this key binding here
    	        // remember you may need to send packet to server
    	    	Minecraft.getMinecraft().thePlayer.sendChatMessage(" TEST ");
    	    }
    	}
    }

    register my Handler in pre int (my main class)

        @Mod.EventHandler
        public void PreInit(FMLInitializationEvent event) {
        	
        	MinecraftForge.EVENT_BUS.register(new KeybindHandler(mc));
        }
    When I go to test, it does not work again ...
    

     

  3. I'm trying to do that when a player presses the Key_P and Key_H button do something.

    Events are being correctly registered (keyBindings).

     

    KeybindHandler.java:

    package com.skelletonx.MacroSK.handler;
    
    import org.lwjgl.input.Keyboard;
    
    import com.skelletonx.MacroSK.util.LogHelper;
    
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraftforge.fml.client.registry.ClientRegistry;
    
    public class KeybindHandler {
    	
    	public static KeyBinding[] keyBindings;
    	
        public static void init() {
            
        	keyBindings = new KeyBinding[2]; 
        	  
        	// instantiate the key bindings
        	keyBindings[0] = new KeyBinding("MacroSK Shop", Keyboard.KEY_P, "key.magicbeans.category");
        	keyBindings[1] = new KeyBinding("MacroSK Shop2", Keyboard.KEY_H, "key.magicbeans.category");
        	  
        	// register all the key bindings
        	for (int i = 0; i < keyBindings.length; ++i) 
        	{
        	    ClientRegistry.registerKeyBinding(keyBindings[i]);
        	    LogHelper.info("KeyBinding register OK");
        	}
        }
    
    }

    ButtonClickEvent.java:

    package com.skelletonx.MacroSK.handler;
    
    import com.skelletonx.MacroSK.util.LogHelper;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    import net.minecraftforge.fml.common.eventhandler.EventPriority;
    
    public class ButtonClickEvent {
    	
    	@SideOnly(Side.CLIENT)
    	@SubscribeEvent(priority= EventPriority.NORMAL, receiveCanceled=true)
    	public static void onEvent(KeyInputEvent event) {
    		
    	    KeyBinding[] keyBindings = KeybindHandler.keyBindings;
    	    
    	    if (keyBindings[0].isKeyDown()) 
    	    {
    	        // DEBUG
    	        LogHelper.info("Key binding ="+keyBindings[0].getKeyDescription());
    	            
    	        // do stuff for this key binding here
    	        // remember you may need to send packet to server
    	        Minecraft.getMinecraft().thePlayer.sendChatMessage(" TEST ");
    	    }
    	    if (keyBindings[1].isKeyDown()) 
    	    {
    	        // DEBUG
    	    	LogHelper.info("Key binding ="+keyBindings[1].getKeyDescription());
    	            
    	        // do stuff for this key binding here
    	        // remember you may need to send packet to server
    	    	Minecraft.getMinecraft().thePlayer.sendChatMessage(" TEST ");
    	    }
    	}
    }

    ClientProxy.java:

    package com.skelletonx.MacroSK.proxy;
    
    import com.skelletonx.MacroSK.handler.ButtonClickEvent;
    import com.skelletonx.MacroSK.handler.KeybindHandler;
    import net.minecraftforge.common.MinecraftForge;
    
    
    public class ClientProxy extends CommonProxy{
    
        public void registerClient(){
        	KeybindHandler.init();
            MinecraftForge.EVENT_BUS.register(ButtonClickEvent.class);
        }
    }

    my class Main:

     

    package com.skelletonx.MacroSK;
    
    import net.minecraftforge.fml.common.Mod;
    import net.minecraftforge.fml.common.SidedProxy;
    import net.minecraftforge.fml.common.event.FMLInitializationEvent;
    import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
    import com.skelletonx.MacroSK.proxy.*;
    
    
    @Mod(modid = MacroSK.MODID, version = MacroSK.VERSION)
    public class MacroSK
    {
        public static final String MODID = "MacroSK";
        public static final String VERSION = "1.0";
        public static final String COMMON_PROXY ="com.skelletonx.MacroSK.proxy.CommonProxy";
        public static final String CLIENT_PROXY ="com.skelletonx.MacroSK.proxy.ClientProxy";
        
        @SidedProxy(clientSide=CLIENT_PROXY, serverSide=COMMON_PROXY)
        public static CommonProxy proxy;
        
        @Mod.EventHandler
        public void PreInit(FMLInitializationEvent event) {
        	
        	
        }
        @Mod.EventHandler
        public void init(FMLInitializationEvent event) {
            proxy.registerClient();
            proxy.globalRegister();
        }
    
        @Mod.EventHandler
        public void postInit(FMLPostInitializationEvent event) {
        	
        }
    }

    When I press the buttons nothing happens.

    it looks like the event does not work... , What did I do wrong ?

    I'm using the tutorial from @jabelar

     

  4. @diesieben07  I'm asking if this is to put in the ButtonClickEven

     

    package com.skelletonx.MacroSK.handler;
    
    import com.skelletonx.MacroSK.util.LogHelper;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.fml.common.gameevent.TickEvent;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    
    
    
    
    public class ButtonClickEvent {
    	
    	@SideOnly(Side.CLIENT)
    	public void ClientTickEvent(TickEvent.Phase phase) {
    		 LogHelper.info("ClientTickEvent execute");
    	    	if(KeybindHandler.keybind.isKeyDown()) {
    	    		LogHelper.info("OK??????????");
    	    		Minecraft.getMinecraft().thePlayer.sendChatMessage(" TEST ");
    	    		
    	    	}
    	}
    }

    oioio

     

     

  5. On 14/04/2018 at 11:27 AM, diesieben07 said:

    This does not compile, this is not Javascript.

     

    Use ClientTickEvent (check TickEvent::phase) and check KeyBinding::isKeyDown to see if your key is pressed.

     

    Also, why does your title say 1.7 when you are clearly not using 1.7?

    phase ? public ClientTickEvent(TickEvent.Phase phase ok?

  6. I'm trying to do that, when I press "KEY_F" Do something, but I'm not getting

    ButtonClickEvent: 

    package com.skelletonx.MacroSK.handler;
    
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraftforge.fml.common.eventhandler.EventPriority;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.InputEvent;
    import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    import org.lwjgl.input.Keyboard;
    
    public class ButtonClickEvent {
    	public KeyBinding key  = new KeyBinding("key name", Keyboard.KEY_F, "My_Mod_Category");
    
        @SideOnly(Side.CLIENT)
        @SubscribeEvent(priority= EventPriority.NORMAL, receiveCanceled=true)
        public void onEvent(KeyInputEvent event) {
        	if(key) {
        		// execute KEY_F 
        	}
        	
        }
    }

    ClientProxy:

    package com.skelletonx.MacroSK.proxy;
    
    import com.skelletonx.MacroSK.handler.ButtonClickEvent;
    import com.sun.javafx.scene.control.behavior.KeyBinding;
    
    import net.minecraftforge.common.MinecraftForge;
    
    
    public class ClientProxy extends CommonProxy{
    	
    	public static KeyBinding[] keyBindings;
    
        public void registerClient(){
            //ClientCommandHandler.instance.registerCommand(new CommandBind());
            MinecraftForge.EVENT_BUS.register(new ButtonClickEvent());
        }
    }

     

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.