Add stealthmins (#26263)
* Add stealthmin command. * Update Content.Server/Administration/Commands/AdminWhoCommand.cs As suggested by CE. Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com> * Add admin notifications for admins toggling stealthmin. * Localize stealthmin command --------- Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
This commit is contained in:
@@ -19,6 +19,16 @@ public sealed class AdminWhoCommand : IConsoleCommand
|
||||
var adminMgr = IoCManager.Resolve<IAdminManager>();
|
||||
var afk = IoCManager.Resolve<IAfkManager>();
|
||||
|
||||
var seeStealth = true;
|
||||
|
||||
// If null it (hopefully) means it is being called from the console.
|
||||
if (shell.Player != null)
|
||||
{
|
||||
var playerData = adminMgr.GetAdminData(shell.Player);
|
||||
|
||||
seeStealth = playerData != null && playerData.CanStealth();
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
var first = true;
|
||||
foreach (var admin in adminMgr.ActiveAdmins)
|
||||
@@ -30,10 +40,16 @@ public sealed class AdminWhoCommand : IConsoleCommand
|
||||
var adminData = adminMgr.GetAdminData(admin)!;
|
||||
DebugTools.AssertNotNull(adminData);
|
||||
|
||||
if (adminData.Stealth && !seeStealth)
|
||||
continue;
|
||||
|
||||
sb.Append(admin.Name);
|
||||
if (adminData.Title is { } title)
|
||||
sb.Append($": [{title}]");
|
||||
|
||||
if (adminData.Stealth)
|
||||
sb.Append(" (S)");
|
||||
|
||||
if (shell.Player is { } player && adminMgr.HasAdminFlag(player, AdminFlags.Admin))
|
||||
{
|
||||
if (afk.IsAfk(admin))
|
||||
|
||||
39
Content.Server/Administration/Commands/StealthminCommand.cs
Normal file
39
Content.Server/Administration/Commands/StealthminCommand.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Content.Server.Administration.Managers;
|
||||
using Content.Shared.Administration;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Administration.Commands;
|
||||
|
||||
[UsedImplicitly]
|
||||
[AdminCommand(AdminFlags.Stealth)]
|
||||
public sealed class StealthminCommand : LocalizedCommands
|
||||
{
|
||||
public override string Command => "stealthmin";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
var player = shell.Player;
|
||||
if (player == null)
|
||||
{
|
||||
shell.WriteLine(Loc.GetString("cmd-stealthmin-no-console"));
|
||||
return;
|
||||
}
|
||||
|
||||
var mgr = IoCManager.Resolve<IAdminManager>();
|
||||
|
||||
var adminData = mgr.GetAdminData(player);
|
||||
|
||||
DebugTools.AssertNotNull(adminData);
|
||||
|
||||
if (!adminData!.Stealth)
|
||||
{
|
||||
mgr.Stealth(player);
|
||||
}
|
||||
else
|
||||
{
|
||||
mgr.UnStealth(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user