void WriteLine(IChatLine line)
        {
            if (!showJoinLeave && line is JoinLine || line is LeaveLine) return;
            if (!showHistory && line is HistoryLine) return;

            // var scrollToEnd = !Focused; // why?
            var scrollToEnd = true;
            var selectionStart = SelectionStart;
            var selectionLength = SelectionLength;

            foreach (var text in line.FormattedText)
            {
                SelectionColor = text.Color;
                using (var font = new Font(Font, text.Style))
                {
                    SelectionFont = font;
                    AppendText(text.Text);
                }
            }
            SelectionStart = selectionStart;
            SelectionLength = selectionLength;
            if (scrollToEnd)
            {
                SelectionStart = Text.Length;
                ScrollToCaret();
            }
        }
Пример #2
0
        void WriteLine(IChatLine line)
        {
            if (!showJoinLeave && line is JoinLine || line is LeaveLine)
            {
                return;
            }
            if (!showHistory && line is HistoryLine)
            {
                return;
            }

            // var scrollToEnd = !Focused; // why?
            var scrollToEnd     = true;
            var selectionStart  = SelectionStart;
            var selectionLength = SelectionLength;

            foreach (var text in line.FormattedText)
            {
                SelectionColor = text.Color;
                using (var font = new Font(Font, text.Style))
                {
                    SelectionFont = font;
                    AppendText(text.Text);
                }
            }
            SelectionStart  = selectionStart;
            SelectionLength = selectionLength;
            if (scrollToEnd)
            {
                SelectionStart = Text.Length;
                ScrollToCaret();
            }
        }
Пример #3
0
        public void AddLine([NotNull] IChatLine line)
        {
            if (line == null)
            {
                throw new ArgumentNullException("line");
            }
            if ((line is SaidLine && Program.Conf.IgnoredUsers.Contains(((SaidLine)line).AuthorName)) ||
                (line is SaidExLine && Program.Conf.IgnoredUsers.Contains(((SaidExLine)line).AuthorName)))
            {
                return;
            }

            ChatBox.AddLine(line);
            HistoryManager.LogLine(UserName, line);
            var saidLine = line as SaidLine;

            if (saidLine != null && WindowsApi.IdleTime.TotalMinutes > Program.Conf.IdleTime &&
                (DateTime.Now - lastAnsweringMessageTime).TotalMinutes > Program.Conf.IdleTime)
            {
                if (saidLine.AuthorName != Program.TasClient.UserName)
                {
                    Program.TasClient.Say(SayPlace.User,
                                          UserName,
                                          String.Format("Answering machine: I have been idle for {0} minutes.", (int)WindowsApi.IdleTime.TotalMinutes),
                                          false);
                    lastAnsweringMessageTime = DateTime.Now;
                }
            }
        }
Пример #4
0
 public void AddLine(IChatLine line)
 {
     lines.Add(line);
     if (PassesFilter(line))
     {
         WriteLine(line);
     }
 }
Пример #5
0
 public bool PassesFilter(IChatLine line)
 {
     if (!showJoinLeave && (line is JoinLine || line is LeaveLine)) return false;
     if (!showHistory && line is HistoryLine) return false;
     if (!Program.Conf.ShowHourlyChimes && line is ChimeLine) return false;
     if (!String.IsNullOrEmpty(TextFilter)) return line.Text.Contains(TextFilter);
     return true;
 }
Пример #6
0
        void WriteLine(IChatLine line)
        {
            var splitText = line.Text.Replace("\r\n", "\n").Replace("\\n", "\n").Split('\n');

            AppendText(splitText[0]);
            string padding = (line is TopicLine) ? "" : "        "; //padding to avoid player spoofing different player using multi-line & color & formating

            for (int i = 1; i < splitText.Length; i++)
            {
                AppendText(padding + splitText[i]);
            }
        }
Пример #7
0
 public virtual void AddLine(IChatLine line)
 {
     if (ChannelName != "zkadmin" &&
         ((line is SaidLine && Program.Conf.IgnoredUsers.Contains(((SaidLine)line).AuthorName)) ||
          (line is SaidExLine && Program.Conf.IgnoredUsers.Contains(((SaidExLine)line).AuthorName))))
     {
         return;
     }
     ChatBox.AddLine(line);
     ChannelLineAdded(this, new ChannelLineArgs()
     {
         Channel = ChannelName, Line = line
     });
     HistoryManager.LogLine(ChannelName, line);
 }
        public static void LogLine(string channelName, IChatLine line)
        {
            if (line is JoinLine || line is LeaveLine || line is HistoryLine || line is TopicLine) return;
            var lineStr = line is ChimeLine ? "*** " +
                ((ChimeLine)line).Date.ToString(System.Globalization.CultureInfo.CurrentCulture) :
                line.Text.StripAllCodes();

            if (!newlineBuffer.ContainsKey(channelName)) //initialize content if haven't
                newlineBuffer.Add(channelName, new List<string>());

            newlineBuffer[channelName].Add(lineStr); //put string to buffer for write later

            if (newlineBuffer[channelName].Count == 30) //write every 30th line
                FlushBuffer();
        }
Пример #9
0
        void WriteLine(IChatLine line)
        {
            if (PassesFilter(line))
            {
                if (highlightActive && !DeHighlighted(line.Text))
                {
                    line = new HistoryLine(line.Text);
                }

                var splitText = line.Text.Replace("\r\n", "\n").Replace("\\n", "\n").Split('\n');
                AppendText(splitText[0]);
                string padding = (line is TopicLine) ? "" : "        "; //padding to avoid player spoofing different player using multi-line & color & formating
                for (int i = 1; i < splitText.Length; i++)
                {
                    AppendText(padding + splitText[i]);
                }
            }
        }
Пример #10
0
 public bool PassesFilter(IChatLine line)
 {
     if (!showJoinLeave && (line is JoinLine || line is LeaveLine))
     {
         return(false);
     }
     if (!showHistory && line is HistoryLine)
     {
         return(false);
     }
     if (!Program.Conf.ShowHourlyChimes && line is ChimeLine)
     {
         return(false);
     }
     if (!String.IsNullOrEmpty(TextFilter))
     {
         return(line.Text.Contains(TextFilter));
     }
     return(true);
 }
Пример #11
0
        public static void LogLine(string channelName, IChatLine line)
        {
            if (line is JoinLine || line is LeaveLine || line is HistoryLine || line is TopicLine)
            {
                return;
            }
            var lineStr = line is ChimeLine ? "*** " +
                          ((ChimeLine)line).Date.ToString(System.Globalization.CultureInfo.CurrentCulture) :
                          line.Text.StripAllCodes();

            if (!newlineBuffer.ContainsKey(channelName)) //initialize content if haven't
            {
                newlineBuffer.Add(channelName, new List <string>());
            }

            newlineBuffer[channelName].Add(lineStr);    //put string to buffer for write later

            if (newlineBuffer[channelName].Count == 30) //write every 30th line
            {
                FlushBuffer();
            }
        }
 public override void AddLine(IChatLine line)
 {
     base.AddLine(line);
     BattleLine(this, new EventArgs <IChatLine>(line));
 }
Пример #13
0
 public virtual void AddLine(IChatLine line) {
     if (ChannelName != "zkadmin" &&
         ((line is SaidLine && Program.Conf.IgnoredUsers.Contains(((SaidLine)line).AuthorName)) ||
          (line is SaidExLine && Program.Conf.IgnoredUsers.Contains(((SaidExLine)line).AuthorName)))) return;
     ChatBox.AddLine(line);
     ChannelLineAdded(this, new ChannelLineArgs() { Channel = ChannelName, Line = line });
     HistoryManager.LogLine(ChannelName, line);
 }
Пример #14
0
 public void AddLine(IChatLine line)
 {
     lines.Add(line);
     WriteLine(line);
 }
Пример #15
0
 public void AddLine(IChatLine line)
 {
     lines.Add(line);
     WriteLine(line);
 }
		public override void AddLine(IChatLine line)
		{
			base.AddLine(line);
			BattleLine(this, new EventArgs<IChatLine>(line));
		}
Пример #17
0
        void WriteLine(IChatLine line)
        {
            if (PassesFilter(line)) 
            {
                if (highlightActive && !DeHighlighted(line.Text))
                    line = new HistoryLine(line.Text);

                var splitText = line.Text.Replace("\r\n", "\n").Replace("\\n", "\n").Split('\n');
                AppendText(splitText[0]);
                string padding = (line is TopicLine) ? "" : "        "; //padding to avoid player spoofing different player using multi-line & color & formating
                for (int i = 1; i < splitText.Length;i++ )
                    AppendText(padding + splitText[i]);
            }
        }