private void init() {
		addHandler(new IRCEventAdapter() {
			@Override
			public void onError(Throwable ex) {
				if (ex instanceof RecievedFromIRCServerException) {
					RecievedFromIRCServerException e = (RecievedFromIRCServerException) ex;
					if ("433".equals(e.getId())) {
						IRCClient.this.nickName = IRCClient.this.nickName + "_";
						try {
							reconnect();
						} catch (IOException e1) {
							IRCClient.this.onError(e1);
						}
					}
				}
			}
		});
		addHandler(new IRCEventAdapter() {
			@Override
			public void onServerMessage(int id, String message) {
				if (ServerCommand.RPL_NAMREPLY == id) {
					int sharpIndex = message.indexOf("#");
					String channelName = message.substring(sharpIndex, message.indexOf(" ", sharpIndex));
					String[] userNames = message.substring(message.lastIndexOf(":") + 1).trim().split(" ");
					List<User> userList = new ArrayList<User>();
					for (String userName : userNames) {
						User user = new User();
						if (userName.startsWith("@")) {
							user.setNickName(userName.substring(1));
							user.setOwner(true);
						} else {
							user.setNickName(userName);
						}
						userList.add(user);
					}
					Channel channel = channelMap.get(channelName);
					if (null != channel) {
						channel.clearUsers();
						channel.addUserAll(userList);
					}
				}
			}
		});
	}