adminnotes command cleanup (#36086)

localize adminnotes command, autocomplete
This commit is contained in:
Errant
2025-03-26 06:42:17 +01:00
committed by GitHub
parent 462519b7da
commit 2f30fe3ceb
2 changed files with 26 additions and 8 deletions

View File

@@ -1,19 +1,19 @@
using Content.Server.Administration.Notes;
using System.Linq;
using Content.Server.Administration.Notes;
using Content.Shared.Administration;
using Robust.Server.Player;
using Robust.Shared.Console;
namespace Content.Server.Administration.Commands;
[AdminCommand(AdminFlags.ViewNotes)]
public sealed class OpenAdminNotesCommand : IConsoleCommand
public sealed class OpenAdminNotesCommand : LocalizedCommands
{
public const string CommandName = "adminnotes";
public string Command => CommandName;
public string Description => "Opens the admin notes panel.";
public string Help => $"Usage: {Command} <notedPlayerUserId OR notedPlayerUsername>";
public override string Command => CommandName;
public async void Execute(IConsoleShell shell, string argStr, string[] args)
public override async void Execute(IConsoleShell shell, string argStr, string[] args)
{
if (shell.Player is not { } player)
{
@@ -33,17 +33,27 @@ public sealed class OpenAdminNotesCommand : IConsoleCommand
if (dbGuid == null)
{
shell.WriteError($"Unable to find {args[0]} netuserid");
shell.WriteError(Loc.GetString("cmd-adminnotes-wrong-target", ("user", args[0])));
return;
}
notedPlayer = dbGuid.UserId;
break;
default:
shell.WriteError($"Invalid arguments.\n{Help}");
shell.WriteError(Loc.GetString("cmd-adminnotes-args-error"));
return;
}
await IoCManager.Resolve<IAdminNotesManager>().OpenEui(player, notedPlayer);
}
public override CompletionResult GetCompletion(IConsoleShell shell, string[] args)
{
if (args.Length != 1)
return CompletionResult.Empty;
var playerMgr = IoCManager.Resolve<IPlayerManager>();
var options = playerMgr.Sessions.Select(c => c.Name).OrderBy(c => c).ToArray();
return CompletionResult.FromHintOptions(options, Loc.GetString("cmd-adminnotes-hint"));
}
}

View File

@@ -0,0 +1,8 @@
cmd-adminnotes-desc = Opens the admin notes panel of target player.
cmd-adminnotes-help = Usage: adminnotes <UserId OR Username>
cmd-adminnotes-wrong-target = Unable to find user '{$user}'.
cmd-adminnotes-args-error = Invalid arguments.
Usage: adminnotes <UserId OR Username>
cmd-adminnotes-hint = UserId OR Username