private void HandleUpdate(String flap) { StringTokenizer stk = new StringTokenizer(flap, ':'); string screenName = stk.ReadToken(); BuddyInfo buddy = Buddies[screenName]; if (buddy != null) { buddy.screenName = screenName; buddy.online = stk.ReadToken() == "T"; buddy.evilAmount = int.Parse(stk.ReadToken()); long epochDate = long.Parse(stk.ReadToken()); buddy.signOnTime = new DateTime(1970, 1, 1).AddSeconds(epochDate); int idleMinutes = int.Parse(stk.ReadToken()); buddy.idleTime = new TimeSpan(0, idleMinutes, 0); buddy.isOnAol = stk.ReadChar() == 'A'; switch (stk.ReadChar()) { case 'A': buddy.userClass = BuddyUserClass.Admin; break; case 'U': buddy.userClass = BuddyUserClass.Unconfirmed; break; default: buddy.userClass = BuddyUserClass.Normal; break; } if (stk.HasMoreTokens) { buddy.isAvailable = stk.ReadChar() != 'U'; } else { buddy.isAvailable = true; } if (BuddyUpdate != null) { BuddyUpdate(this, new BuddyUpdateEventArgs(buddy)); } } }