Posted April 16, 20169 yr Hello! As you can read in the topic im trying to code an autoclicker for minecraft using forge. I created a new keybind which gets triggered when i press the set key. Currently what it does when i press the keybind is: - cause lag! (main problem) - execute a leftclick (solely visible by looking at a mob and seeing that it becomes red) The lag freezes the game for half a second so that you cant see the attacking (swinging arm) animation and when trying to execute multiple clicks it freezes minecraft for a longer time. Although mc freezes, the autoclicker works outside of the game. Maybe someone knows a way to modify this code so the autoclicker only works in mc which would be convenient but not essential. Also i do NOT want to make this mod a cheat-mod which speeds up attacking and i also do NOT want to use Minecraft.getMinecraft().playerController.attackEntity(player, targetEntity); (Warning: Im new to java so it might be some really stupid mistake) public class KeyHandler { static boolean tHitmarker; static boolean tAutohit; @SubscribeEvent public void onKeyInputEvent(KeyInputEvent event){ if(MyMod.toggleAutohit.isKeyDown()){ EntityPlayer player = Minecraft.getMinecraft().thePlayer; if(tAutohit){ tAutohit = false; player.addChatComponentMessage(new ChatComponentText("Disabled Autohit")); } else{ tAutohit = true; Autoclick.leftclick(); player.addChatComponentMessage(new ChatComponentText("Enabled Autohit")); } } } } public class Autoclick extends Thread{ public static void leftclick(){ Robot bot; try { bot = new Robot(); bot.mousePress(InputEvent.BUTTON1_MASK); bot.mouseRelease(InputEvent.BUTTON1_MASK); } catch (AWTException e) { e.printStackTrace(); } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } Note: i posted a similar question recently but deleted it as it wasnt very clear.
April 16, 20169 yr I believe your problem is here: try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Using sleeping a thread is never a good idea if you need a delay I suggest using Timer and TimerTask.
April 16, 20169 yr That aside there is no need to create a new thread. You can just make a class that implements ITickable(iirc) Current Project: Armerger Planned mods: Light Drafter | Ore Swords Looking for help getting a mod off the ground? Coding | Textures
April 16, 20169 yr Author thanks for the answers, andavins tip worked the thread.sleep was the thing causing the lag and so i just had to replace that. I believe your problem is here: try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Using sleeping a thread is never a good idea if you need a delay I suggest using Timer and TimerTask.
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.