Esempio n. 1
0
        public void HandleChat( SteamID sender, EChatEntryType type, string msg )
        {
            string friendName = Steam3.SteamFriends.GetFriendPersonaName( sender );
            string time = DateTime.Now.ToString( "h:mm tt" );

            var friend = new Friend( sender );
            var status = new StatusColor(settings);
            var statusColor = status.GetStatusColor(friend);

            switch ( type )
            {
                case EChatEntryType.ChatMsg:

                    this.AppendText( statusColor, string.Format( "{0} - {1}", time, friendName ) );
                    this.AppendText( Color.Black, ": " + msg );

                    if ( sender != Steam3.SteamClient.SteamID )
                        FlashWindow();

                    break;

                case EChatEntryType.Emote:

                    this.AppendText( statusColor, string.Format( "{0} - {1}", time, friendName ) );
                    this.AppendText( statusColor, " " + msg );

                    if ( sender != Steam3.SteamClient.SteamID )
                        FlashWindow();

                    break;

                case EChatEntryType.InviteGame:
                    this.AppendText( statusColor, string.Format( "{0} - {1}", time, friendName ) );
                    this.AppendText( statusColor, " has invited you to play a game." );

                    if ( sender != Steam3.SteamClient.SteamID )
                        FlashWindow();

                    break;

                default:
                    return;

            }

            this.AppendText( Environment.NewLine );
            this.ScrollLog();
        }
Esempio n. 2
0
        public void UpdateFriend( Friend steamid )
        {
            Friend = steamid;

            nameLbl.Text = steamid.GetName();
            statusLbl.Text = steamid.GetStatus();
            gameLbl.Text = steamid.GetGameName();

            if ( steamid.IsRequestingFriendship() )
            {
                btnAccept.Visible = true;
                btnDeny.Visible = true;
            }
            else
            {
                btnAccept.Visible = false;
                btnDeny.Visible = false;
            }

            var status = new StatusColor(settings);
            var statusColor = status.GetStatusColor(steamid);

            nameLbl.ForeColor = statusLbl.ForeColor = gameLbl.ForeColor = statusColor;

            byte[] avatarHash = Steam3.SteamFriends.GetFriendAvatar( steamid.SteamID );
            bool validHash = avatarHash != null && !Util.IsZeros( avatarHash );

            if ((AvatarHash == null && !validHash && avatarBox.Image != null) || (AvatarHash != null && AvatarHash.SequenceEqual(avatarHash)))
            {
                // avatar is already up to date, no operations necessary
            }
            else if ( validHash )
            {
                AvatarHash = avatarHash;
                CDNCache.DownloadAvatar(steamid.SteamID, avatarHash, AvatarDownloaded);
            }
            else
            {
                AvatarHash = null;
                avatarBox.Image = ComposeAvatar( this.Friend, null );
            }
        }