Esempio n. 1
0
        private void DrawPlayersPanel(IEnumerable <BasePlayer> players, PanelSetup setup, UpdateEnum updateEnum)
        {
            HiddenPanelInfo info = _hiddenPanels[setup.PanelReg.Name];

            if (info.All)
            {
                return;
            }

            foreach (BasePlayer player in players)
            {
                PanelRegistration     reg       = setup.PanelReg;
                Hash <string, object> panelData = reg.Plugin.Call(reg.GetPanelMethod, player, reg.Name) as Hash <string, object>;
                if (panelData == null)
                {
                    PrintError($"DrawPlayersPanel: {reg.Plugin.Name} returned no data from {reg.GetPanelMethod} method");
                    return;
                }

                Panel panel = new Panel(panelData);
                foreach (PanelUpdate update in CreatePanel(panel, setup, updateEnum))
                {
                    CuiHelper.DestroyUi(player, update.PanelName);
                    if (!info.PlayerHidden.Contains(player.userID))
                    {
                        CuiHelper.AddUi(player, update.Container);
                    }
                }
            }
        }
Esempio n. 2
0
        private void UpdatePanel(BasePlayer player, string panelName, int update)
        {
            if (!_registeredPanels.ContainsKey(panelName))
            {
                return;
            }

            HiddenPanelInfo hidden = _hiddenPanels[panelName];

            if (hidden.All || hidden.PlayerHidden.Contains(player.userID))
            {
                return;
            }

            NextTick(() =>
            {
                DrawPanel(new List <BasePlayer> {
                    player
                }, _registeredPanels[panelName], (UpdateEnum)update);
            });
        }
Esempio n. 3
0
        private void UpdatePanel(BasePlayer player, string panelName, int update)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                sb.AppendLine($"A - {panelName} - {update}");
                if (!_registeredPanels.ContainsKey(panelName))
                {
                    sb.AppendLine("B");
                    return;
                }

                sb.AppendLine("C");

                HiddenPanelInfo hidden = _hiddenPanels[panelName];
                sb.AppendLine($"D - {hidden == null} {hidden?.PlayerHidden == null} {player == null}");
                if (hidden.All || hidden.PlayerHidden.Contains(player.userID))
                {
                    sb.AppendLine("E");
                    return;
                }

                sb.AppendLine("F");
                NextTick(() =>
                {
                    sb.AppendLine("G");
                    DrawPanel(new List <BasePlayer> {
                        player
                    }, _registeredPanels[panelName], (UpdateEnum)update);
                    sb.AppendLine("H");
                });
            }
            catch (Exception ex)
            {
                PrintError($"{sb}\n{ex}");
            }
        }