diff --git a/Content.Server/Administration/AdminSystem.cs b/Content.Server/Administration/AdminSystem.cs index 7bfbdd147d..c855ae4c8e 100644 --- a/Content.Server/Administration/AdminSystem.cs +++ b/Content.Server/Administration/AdminSystem.cs @@ -76,12 +76,12 @@ namespace Content.Server.Administration if(args == null) return; - foreach (var admin in _adminManager.ActiveAdmins) + foreach (var admin in _adminManager.AllAdmins) { RaiseNetworkEvent(args, admin.ConnectedClient); } - if (e.NewStatus != SessionStatus.Disconnected && _adminManager.IsAdmin(e.Session)) + if (e.NewStatus != SessionStatus.Disconnected && _adminManager.IsAdmin(e.Session, true)) { SendFullPlayerList(e.Session); } diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index 044e4c5604..d6b4783f62 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -44,6 +44,8 @@ namespace Content.Server.Administration.Managers .Where(p => p.Value.Data.Active) .Select(p => p.Key); + public IEnumerable AllAdmins => _admins.Select(p => p.Key); + // If a command isn't in this list it's server-console only. // if a command is in but the flags value is null it's available to everybody. private readonly HashSet _anyCommands = new(); diff --git a/Content.Server/Administration/Managers/IAdminManager.cs b/Content.Server/Administration/Managers/IAdminManager.cs index 40ac0b27bb..daf0f9981e 100644 --- a/Content.Server/Administration/Managers/IAdminManager.cs +++ b/Content.Server/Administration/Managers/IAdminManager.cs @@ -24,6 +24,11 @@ namespace Content.Server.Administration.Managers /// IEnumerable ActiveAdmins { get; } + /// + /// Gets all admins currently on the server, even de-adminned ones. + /// + IEnumerable AllAdmins { get; } + /// /// Checks if a player is an admin. ///