@Override
	public void process(HashMap data) {
		String event = (String) data.get($EVENT$);
		String nick = (String) data.get($NICK$);
		String channel = (String) data.get($TARGET$);

		if (event.equals("JOIN")) {
			dataList.JoinNick(nick, channel);
		} else if (event.equals("PART")) {
			dataList.PartNick(nick, dataList.getChannel(channel));
		} else if (event.equals("QUIT")) {
			StringBuffer blah = new StringBuffer();

			Iterator iter = dataList.getUser(nick).getChannels().iterator();
			while (iter.hasNext()) {
				blah.append(((Channel) iter.next()).getName());

				if (iter.hasNext()) {
					blah.append(",");
				}
			}

			data.put("$channels", blah.toString());

			dataList.QuitNick(nick);
		} else if (event.equals("NICK") && data.containsKey($PARMS$)) {
			dataList.ChangeNick(nick, (String) data.get($PARMS$));
		} else if (event.equals("KICK")) {
			String d = (String) data.get($PARMS$);
			d = d.substring(0, d.indexOf(' '));
			dataList.PartNick(d, dataList.getChannel(channel));
		} else if (event.equals("PRIVMSG")) {
			// @Serge: code moved to ProcessEvents.java, where we can touch user not only on
			// PRIVMSG, but also on ACTION and other events.
			// Fix for: http://jirc.hick.org/cgi-bin/bitch.cgi/view.html?1912086
		}
	}