PlayerActionsWindow.xaml.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Content.Shared.Administration;
  2. using JetBrains.Annotations;
  3. using Robust.Client.AutoGenerated;
  4. using Robust.Client.Console;
  5. using Robust.Client.UserInterface.Controls;
  6. using Robust.Client.UserInterface.CustomControls;
  7. using Robust.Client.UserInterface.XAML;
  8. using Robust.Shared.Utility;
  9. namespace Content.Client.Administration.UI.Tabs.AdminTab
  10. {
  11. [GenerateTypedNameReferences]
  12. [UsedImplicitly]
  13. public sealed partial class PlayerActionsWindow : DefaultWindow
  14. {
  15. private PlayerInfo? _selectedPlayer;
  16. private readonly Dictionary<Button, ConfirmationData> _confirmations = new();
  17. public PlayerActionsWindow()
  18. {
  19. RobustXamlLoader.Load(this);
  20. SubmitKickButton.OnPressed += SubmitKickButtonOnPressed;
  21. SubmitAHelpButton.OnPressed += SubmitAhelpButtonOnPressed;
  22. SubmitRespawnButton.OnPressed += SubmitRespawnButtonOnPressed;
  23. PlayerList.OnSelectionChanged += OnListOnOnSelectionChanged;
  24. }
  25. private void OnListOnOnSelectionChanged(PlayerInfo? obj)
  26. {
  27. if (_selectedPlayer != obj)
  28. AdminUIHelpers.RemoveAllConfirms(_confirmations);
  29. _selectedPlayer = obj;
  30. var disableButtons = _selectedPlayer == null;
  31. SubmitKickButton.Disabled = disableButtons;
  32. SubmitAHelpButton.Disabled = disableButtons;
  33. SubmitRespawnButton.Disabled = disableButtons;
  34. }
  35. private void SubmitKickButtonOnPressed(BaseButton.ButtonEventArgs obj)
  36. {
  37. if (_selectedPlayer == null)
  38. return;
  39. if (!AdminUIHelpers.TryConfirm(SubmitKickButton, _confirmations))
  40. return;
  41. IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
  42. $"kick \"{_selectedPlayer.Username}\" \"{CommandParsing.Escape(ReasonLine.Text)}\"");
  43. }
  44. private void SubmitAhelpButtonOnPressed(BaseButton.ButtonEventArgs obj)
  45. {
  46. if (_selectedPlayer == null)
  47. return;
  48. IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
  49. $"openahelp \"{_selectedPlayer.SessionId}\"");
  50. }
  51. private void SubmitRespawnButtonOnPressed(BaseButton.ButtonEventArgs obj)
  52. {
  53. if (_selectedPlayer == null)
  54. return;
  55. if (!AdminUIHelpers.TryConfirm(SubmitRespawnButton, _confirmations))
  56. return;
  57. IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
  58. $"respawn \"{_selectedPlayer.Username}\"");
  59. }
  60. }
  61. }