示例#1
0
        public void DoTick()
        {
            List <int> removedKeys             = new List <int>();
            bool       isContentAlreadyVisible = false;

            foreach (int priorityKey in _popupContentQueue.Keys)
            {
                string visibleContent = ProcessContentQueue(_popupContentQueue[priorityKey]);
                if (visibleContent == null)
                {
                    removedKeys.Add(priorityKey);
                }
                else if (!isContentAlreadyVisible)
                {
                    string content;
                    if (_player.GameMode == GameMode.Creative)
                    {
                        content = $"{visibleContent}";
                    }
                    else
                    {
                        content = $"{visibleContent}";
                    }

                    _player.SendMessage(content, MessageType.Popup);
                    isContentAlreadyVisible = true;
                }
            }

            foreach (int priorityKey in removedKeys)
            {
                _popupContentQueue.Remove(priorityKey);
            }

            removedKeys.Clear();

            isContentAlreadyVisible = false;

            foreach (int priorityKey in _barContentQueue.Keys)
            {
                string visibleContent = ProcessContentQueue(_barContentQueue[priorityKey]);
                if (visibleContent == null)
                {
                    removedKeys.Add(priorityKey);
                }
                else if (!isContentAlreadyVisible)
                {
                    _player.SendTitle("", TitleType.AnimationTimes, 6, 6, 20);

                    string content;
                    if (_player.GameMode == GameMode.Creative)
                    {
                        content = $"§f\n§f\n§f\n{visibleContent}";
                    }
                    else
                    {
                        content = $"§f\n{visibleContent}\n§f\n§f";
                    }

                    _player.SendTitle(content, TitleType.ActionBar);
                    isContentAlreadyVisible = true;
                }
            }

            foreach (int priorityKey in removedKeys)
            {
                _barContentQueue.Remove(priorityKey);
            }
        }