The F3 coords manager is blocked if you're not an admin. This check happened even when playing a replay, where you actually aren't. There's now a check to make sure you are actually server-connected-to-game before running the logic. Also moved it to a manager because this *shouldn't be a bloody entity system in the first place*.
29 lines
962 B
C#
29 lines
962 B
C#
using Content.Client.Administration.Managers;
|
|
using Content.Shared.CCVar;
|
|
using Robust.Client;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Shared.Configuration;
|
|
|
|
namespace Content.Client.DebugMon;
|
|
|
|
/// <summary>
|
|
/// This handles preventing certain debug monitors from being usable by non-admins.
|
|
/// </summary>
|
|
internal sealed class DebugMonitorManager
|
|
{
|
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
|
[Dependency] private readonly IClientAdminManager _admin = default!;
|
|
[Dependency] private readonly IUserInterfaceManager _userInterface = default!;
|
|
[Dependency] private readonly IBaseClient _baseClient = default!;
|
|
|
|
public void FrameUpdate()
|
|
{
|
|
if (_baseClient.RunLevel == ClientRunLevel.InGame
|
|
&& !_admin.IsActive()
|
|
&& _cfg.GetCVar(CCVars.DebugCoordinatesAdminOnly))
|
|
{
|
|
_userInterface.DebugMonitors.SetMonitor(DebugMonitor.Coords, false);
|
|
}
|
|
}
|
|
}
|