35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using Content.Server.Administration;
|
|
using Content.Server.Administration.Managers;
|
|
using Content.Shared.Administration;
|
|
using Robust.Shared.Player;
|
|
using Robust.Shared.Toolshed;
|
|
using Robust.Shared.Toolshed.Syntax;
|
|
|
|
namespace Content.Server.Toolshed.Commands.AdminDebug;
|
|
|
|
[ToolshedCommand, AdminCommand(AdminFlags.Debug)]
|
|
public sealed class ACmdCommand : ToolshedCommand
|
|
{
|
|
[Dependency] private readonly IAdminManager _adminManager = default!;
|
|
|
|
[CommandImplementation("perms")]
|
|
public AdminFlags[]? Perms([PipedArgument] CommandSpec command)
|
|
{
|
|
var res = _adminManager.TryGetCommandFlags(command, out var flags);
|
|
if (res)
|
|
flags ??= Array.Empty<AdminFlags>();
|
|
return flags;
|
|
}
|
|
|
|
[CommandImplementation("caninvoke")]
|
|
public bool CanInvoke(
|
|
[CommandInvocationContext] IInvocationContext ctx,
|
|
[PipedArgument] CommandSpec command,
|
|
[CommandArgument] ValueRef<ICommonSession> player
|
|
)
|
|
{
|
|
// Deliberately discard the error.
|
|
return ((IPermissionController) _adminManager).CheckInvokable(command, player.Evaluate(ctx), out var err);
|
|
}
|
|
}
|