public synchronized boolean connect() { try { connection = new Socket((String) servers.get(currentServer), port); connection.setSoTimeout(10000); receiver = new BufferedReader(new InputStreamReader(connection.getInputStream(), encoding)); sender = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), encoding)); sender.write(irc.nick(myNick)); sender.write(irc.user(myNick, mode, realname)); sender.flush(); } catch (SocketTimeoutException e) { log.error("socket timeout while connecting", e); sendErrorEvent("Bot.connect", "SocketTimeoutException", e.getMessage()); return false; } catch (IOException e) { log.error("error while connecting", e); sendErrorEvent("Bot.connect", "IOException", e.getMessage()); return false; } return true; }