From 5923c848d2bd8bb137663d8c58f630f73575a039 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 15 Nov 2021 14:13:08 +0100 Subject: [PATCH] Admins can see if other admins are AFK. --- .../Commands/AdminWhoCommand.cs | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Content.Server/Administration/Commands/AdminWhoCommand.cs b/Content.Server/Administration/Commands/AdminWhoCommand.cs index 628e2e4a2a..b36f0fe950 100644 --- a/Content.Server/Administration/Commands/AdminWhoCommand.cs +++ b/Content.Server/Administration/Commands/AdminWhoCommand.cs @@ -1,4 +1,8 @@ -using Content.Server.Administration.Managers; +using System.Text; +using Content.Server.Administration.Managers; +using Content.Server.Afk; +using Content.Shared.Administration; +using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.IoC; using Robust.Shared.Utility; @@ -15,12 +19,30 @@ public sealed class AdminWhoCommand : IConsoleCommand public void Execute(IConsoleShell shell, string argStr, string[] args) { var adminMgr = IoCManager.Resolve(); + var afk = IoCManager.Resolve(); + + var sb = new StringBuilder(); + var first = true; foreach (var admin in adminMgr.ActiveAdmins) { + if (!first) + sb.Append('\n'); + first = false; + var adminData = adminMgr.GetAdminData(admin)!; DebugTools.AssertNotNull(adminData); - shell.WriteLine(adminData.Title != null ? $"{admin.Name}: {adminData.Title}" : admin.Name); + sb.Append(admin.Name); + if (adminData.Title is { } title) + sb.Append($": [{title}]"); + + if (shell.Player is IPlayerSession player && adminMgr.HasAdminFlag(player, AdminFlags.Admin)) + { + if (afk.IsAfk(admin)) + sb.Append(" [AFK]"); + } } + + shell.WriteLine(sb.ToString()); } }