public void processPackets() throws IOException { byte[] _receiveData = new byte[UDP_PACKET_BUFFER_SIZE]; while (true) { DatagramPacket receivePacket = new DatagramPacket(_receiveData, _receiveData.length); serverSocket.receive(receivePacket); String data = new String(receivePacket.getData()); ObjectMapper mapper = new ObjectMapper(); JsonNode reqJSON = mapper.readValue(data, JsonNode.class); String action = reqJSON.get("action").getTextValue(); if ("MOUSE_CLICK".equals(action)) { mc.leftClick(); } else if ("MOUSE_RIGHT_CLICK".equals(action)) { mc.rightClick(); } else if ("MOUSE_MOVE".equals(action)) { JsonNode value = reqJSON.get("value"); mc.scaleAndMove(value); } else if ("MOUSE_SPEED".equals(action)) { String value = reqJSON.get("value").getTextValue(); if ("PLUS".equals(value)) { mc.setScale(1); } else { mc.setScale(-1); } } /* * clearing the buffer used to receive UDP packet data to avoid data * corruption */ for (int i = 0; i < UDP_PACKET_BUFFER_SIZE; i++) { _receiveData[i] = (byte) (0); } } }