Esempio n. 1
0
        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));
                }
            }
        }