38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Data.Models.Client;
|
|
using SharedLibraryCore;
|
|
using SharedLibraryCore.Configuration;
|
|
using SharedLibraryCore.Interfaces;
|
|
|
|
namespace IW4MAdmin.Application.Commands
|
|
{
|
|
/// <summary>
|
|
/// List online clients
|
|
/// </summary>
|
|
public class ListClientsCommand : Command
|
|
{
|
|
public ListClientsCommand(CommandConfiguration config, ITranslationLookup translationLookup) : base(config,
|
|
translationLookup)
|
|
{
|
|
Name = "list";
|
|
Description = _translationLookup["COMMANDS_LIST_DESC"];
|
|
Alias = "l";
|
|
Permission = EFClient.Permission.Moderator;
|
|
RequiresTarget = false;
|
|
}
|
|
|
|
public override Task ExecuteAsync(GameEvent gameEvent)
|
|
{
|
|
var clientList = gameEvent.Owner.GetClientsAsList()
|
|
.Select(client =>
|
|
$"[(Color::Accent){client.ClientPermission.Name}(Color::White){(string.IsNullOrEmpty(client.Tag) ? "" : $" {client.Tag}")}(Color::White)][(Color::Yellow)#{client.ClientNumber}(Color::White)] {client.Name}")
|
|
.ToArray();
|
|
|
|
gameEvent.Origin.TellAsync(clientList, gameEvent.Owner.Manager.CancellationToken);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
}
|