Octgn.Play.Gui.ChatControl.TickMessage C# (CSharp) Method

TickMessage() private method

private TickMessage ( object sender, System.Timers.ElapsedEventArgs elapsedEventArgs ) : void
sender object
elapsedEventArgs System.Timers.ElapsedEventArgs
return void
        private void TickMessage(object sender, ElapsedEventArgs elapsedEventArgs)
        {
            lock (this)
            {
                if (chatTimer2.Enabled == false) return;
                chatTimer2.Enabled = false;
            }
            try
            {
                var newMessages = Program.GameMess.Messages.OrderBy(x => x.Id).Where(x => x.Id > lastId).ToArray();
                if (newMessages.Length == 0)
                {
                    return;
                }

                lastId = newMessages.Last().Id;
                var gotone = false;

                Dispatcher.Invoke(new Action(() =>
                {
                    foreach (var m in newMessages)
                    {
                        if (m is NotifyBarMessage)
                        {
                            continue;
                        }
                        if (m is WarningMessage)
                        {
                            if (this.HideErrors)
                                continue;
                        }
                        if (m is DebugMessage)
                        {
                            if (Program.DeveloperMode == false || this.HideDebug)
                                continue;
                        }

                        if (NewMessage != null)
                            NewMessage(m);

                        var b = GameMessageToBlock(m);
                        if (b != null)
                        {
                            gotone = true;
                            this.output.Document.Blocks.Add(b);
                        }
                    }
                    if (gotone && AutoScroll)
                    {
                        X.Instance.Try(this.output.ScrollToEnd);
                    }
                }));
            }
            finally
            {

                try
                {
                    chatTimer2.Enabled = true;
                }
                catch
                {
                }
            }
        }