1
0

BanPanelEui.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Content.Client.Eui;
  2. using Content.Shared.Administration;
  3. using Content.Shared.Eui;
  4. using JetBrains.Annotations;
  5. namespace Content.Client.Administration.UI.BanPanel;
  6. [UsedImplicitly]
  7. public sealed class BanPanelEui : BaseEui
  8. {
  9. private BanPanel BanPanel { get; }
  10. public BanPanelEui()
  11. {
  12. BanPanel = new BanPanel();
  13. BanPanel.OnClose += () => SendMessage(new CloseEuiMessage());
  14. BanPanel.BanSubmitted += (player, ip, useLastIp, hwid, useLastHwid, minutes, reason, severity, roles, erase)
  15. => SendMessage(new BanPanelEuiStateMsg.CreateBanRequest(player, ip, useLastIp, hwid, useLastHwid, minutes, reason, severity, roles, erase));
  16. BanPanel.PlayerChanged += player => SendMessage(new BanPanelEuiStateMsg.GetPlayerInfoRequest(player));
  17. }
  18. public override void HandleState(EuiStateBase state)
  19. {
  20. if (state is not BanPanelEuiState s)
  21. {
  22. return;
  23. }
  24. BanPanel.UpdateBanFlag(s.HasBan);
  25. BanPanel.UpdatePlayerData(s.PlayerName);
  26. }
  27. public override void Opened()
  28. {
  29. BanPanel.OpenCentered();
  30. }
  31. public override void Closed()
  32. {
  33. BanPanel.Close();
  34. BanPanel.Dispose();
  35. }
  36. }