using System.Linq; using System.Threading.Tasks; using Data.Models.Client; using SharedLibraryCore; using SharedLibraryCore.Configuration; using SharedLibraryCore.Interfaces; namespace IW4MAdmin.Application.Commands { /// /// List online clients /// 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; } } }