-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)
{
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"));
+ }
}
--- /dev/null
+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