void SetInfo(String info) {
		StringBuffer user, desc, conn, mail, share;
		int index = 0;
		user = new StringBuffer();
		while (info.charAt(index) != ' ') {
			user.append(info.charAt(index));
			index++;
		}
		String strUser = user.toString();
		if (strUser.equalsIgnoreCase(_bot.botname()))
			return;

		index++;
		desc = new StringBuffer();
		while (info.charAt(index) != '$') {
			desc.append(info.charAt(index));
			index++;
		}
		index = index + 3;
		conn = new StringBuffer();
		while (info.charAt(index) != '$') {
			conn.append(info.charAt(index));
			index++;
		}
		index++;
		mail = new StringBuffer();
		while (info.charAt(index) != '$') {
			mail.append(info.charAt(index));
			index++;
		}
		index++;
		share = new StringBuffer();
		while (info.charAt(index) != '$') {
			share.append(info.charAt(index));
			index++;
		}
		
		synchronized (users) {
			Iterator<User> i = users.iterator();
			boolean found = false;
			while (i.hasNext()) {
				User u = i.next();
				if (u.username().equalsIgnoreCase(strUser)) {
					u.setInfo(desc.toString(), conn.toString(), mail.toString(), share.toString());
					found = true;
					break;
				}
			}
			if(!found) {
				User u = new User(strUser, _bot);
				users.add(u);
				u.setInfo(desc.toString(), conn.toString(), mail.toString(), share.toString());
			}
		}

		_bot.getDispatchThread().callOnUpdateMyInfo(strUser);
	}