DebugMonitorManager.cs 962 B

12345678910111213141516171819202122232425262728
  1. using Content.Client.Administration.Managers;
  2. using Content.Shared.CCVar;
  3. using Robust.Client;
  4. using Robust.Client.UserInterface;
  5. using Robust.Shared.Configuration;
  6. namespace Content.Client.DebugMon;
  7. /// <summary>
  8. /// This handles preventing certain debug monitors from being usable by non-admins.
  9. /// </summary>
  10. internal sealed class DebugMonitorManager
  11. {
  12. [Dependency] private readonly IConfigurationManager _cfg = default!;
  13. [Dependency] private readonly IClientAdminManager _admin = default!;
  14. [Dependency] private readonly IUserInterfaceManager _userInterface = default!;
  15. [Dependency] private readonly IBaseClient _baseClient = default!;
  16. public void FrameUpdate()
  17. {
  18. if (_baseClient.RunLevel == ClientRunLevel.InGame
  19. && !_admin.IsActive()
  20. && _cfg.GetCVar(CCVars.DebugCoordinatesAdminOnly))
  21. {
  22. _userInterface.DebugMonitors.SetMonitor(DebugMonitor.Coords, false);
  23. }
  24. }
  25. }