예제 #1
0
 public static UserStatus GetStatus(User user)
 {
     if (!(user.Visible && user.Online))
     {
         return Offline;
     }
     if (user.IsIgnored)
     {
         return Ignored;
     }
     if (user.IsDND)
     {
         return DND;
     }
     if (user.IsAway)
     {
         return Away;
     }
     if ((user.Equals(User.Current) && (ChatEffects.Current != null)) && ChatEffects.Current.Equals(ChatEffects.Chicken))
     {
         return Chicken;
     }
     if ((user.Equals(User.Current) && (ChatEffects.Current != null)) && ChatEffects.Current.Equals(ChatEffects.Canadian))
     {
         return Canadian;
     }
     return None;
 }
예제 #2
0
 private ITextEffect chatPanel_StyleChatLine(ChatPanel sender, User user, TextLine line)
 {
     if (user.ID == User.Current.ID)
     {
         return new FontColorEffect(Program.Settings.Chat.Appearance.SelfColor, Program.Settings.Chat.Appearance.SelfFont);
     }
     if (user.ID == this.Game.Host.ID)
     {
         return new FontColorEffect(Program.Settings.Chat.Appearance.GameColor, Program.Settings.Chat.Appearance.DefaultFont);
     }
     if (user.IsSystem)
     {
         if (user.Equals(User.Error))
         {
             return new FontColorEffect(Program.Settings.Chat.Appearance.ErrorColor, Program.Settings.Chat.Appearance.ErrorFont);
         }
         if (user.Equals(User.Event))
         {
             return new FontColorEffect(Program.Settings.Chat.Appearance.EventColor, Program.Settings.Chat.Appearance.EventFont);
         }
         if (user.Equals(User.System))
         {
             return new FontColorEffect(Program.Settings.Chat.Appearance.SystemColor, Program.Settings.Chat.Appearance.SystemFont);
         }
         if (user.Equals(User.Game))
         {
             return new FontColorEffect(Program.Settings.Chat.Appearance.GameColor, Program.Settings.Chat.Appearance.GameFont);
         }
     }
     return null;
 }
예제 #3
0
 internal void AddChat(User user, string message)
 {
     try
     {
         VGen0 method = null;
         VGen1 gen2 = null;
         bool scroll;
         if (!user.IsIgnored)
         {
             if (message.IndexOf("I am the effect: ") >= 0)
             {
                 this.RecieveChatEffect(user.Name, message.Replace("I am the effect: ", ""));
             }
             else
             {
                 message = Profanity.MaskProfanity(message);
                 message = message.Replace("\t", "  ");
                 if (Program.Settings.Sound.Speech.EnableSpeech)
                 {
                     Speech.Speak(string.Format("{0} says,, {1}", user.Name, message), false);
                 }
                 scroll = true;
                 if ((base.InvokeRequired && !base.Disposing) && !base.IsDisposed)
                 {
                     if (method == null)
                     {
                         method = delegate {
                             scroll = !this.gvChat.IsFocusedView && GPGGridView.IsMaxScrolled(this.gvChat);
                         };
                     }
                     base.Invoke(method);
                 }
                 else if (!(base.Disposing || base.IsDisposed))
                 {
                     scroll = !this.gvChat.IsFocusedView && GPGGridView.IsMaxScrolled(this.gvChat);
                 }
                 ChatLine line = new ChatLine(this.gpgChatGrid);
                 line.Tag = user;
                 line.PlayerInfo = user.Name;
                 line.Text = message;
                 line.Icon = null;
                 line.TextColor = Program.Settings.Chat.Appearance.DefaultColor;
                 line.TextFont = Program.Settings.Chat.Appearance.DefaultFont;
                 line.Filters["Self"] = user.IsCurrent;
                 line.Filters["System"] = user.Equals(User.System);
                 line.Filters["Game"] = user.Equals(User.Game);
                 line.Filters["Event"] = user.Equals(User.Event);
                 line.Filters["Error"] = user.Equals(User.Error);
                 line.Filters["Admin"] = !user.IsCurrent && user.IsAdmin;
                 line.Filters["Clan"] = !user.IsCurrent && user.IsClanMate;
                 line.Filters["Friend"] = user.IsFriend;
                 line.Filters["Other"] = ((!user.IsSystem && !user.IsAdmin) && (!user.IsClanMate && !user.IsFriend)) && !user.IsCurrent;
                 line.Filters["Speaking"] = true;
                 line.Filters[user.Name] = true;
                 this.OnStyleChatLine(line);
                 if (this.PlayerChatEffects.ContainsKey(user.Name))
                 {
                     foreach (TextSegment segment in line.TextSegments)
                     {
                         segment.Effect = this.PlayerChatEffects[user.Name];
                     }
                 }
                 if ((user != User.System) && (this.AddSpeaker != null))
                 {
                     this.AddSpeaker(this, user);
                 }
                 if ((base.InvokeRequired && !base.Disposing) && !base.IsDisposed)
                 {
                     if (gen2 == null)
                     {
                         gen2 = delegate (object objline) {
                             this.mChatLines.Add((ChatLine) objline);
                             if (scroll)
                             {
                                 this.gvChat.MoveLastVisible();
                             }
                         };
                     }
                     base.BeginInvoke(gen2, new object[] { line });
                 }
                 else if (!base.Disposing && !base.IsDisposed)
                 {
                     this.mChatLines.Add(line);
                     if ((!base.IsDisposed && !base.Disposing) && scroll)
                     {
                         this.gvChat.MoveLastVisible();
                     }
                 }
             }
         }
     }
     catch (Exception exception)
     {
         ErrorLog.WriteLine(exception);
     }
 }