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); } } } }
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); }); }
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}"); } }