public async Task PlayersTask(CommandContext ctx) { var settings = new NexusModuleConfiguration <PlayersMenuSettings>("PlayerMenuSettings", "./Config/TCAdminModule/") .GetConfiguration(); await ctx.TriggerTypingAsync(); var service = await DiscordService.GetService(ctx); var server = new Server(service.ServerId); var query = ServerQuery.GetQueryResults(server, new TCAdmin.GameHosting.SDK.Objects.Game(service.GameId), service); if (query.NumPlayers == 0) { await ctx.RespondAsync( embed : EmbedTemplates.CreateErrorEmbed(service.NameNoHtml, "**No players online**")); return; } if (query.NumPlayers != query.Players.Count) { await ctx.RespondAsync(embed : EmbedTemplates.CreateInfoEmbed(service.NameNoHtml, $"There are **{query.NumPlayers}/{query.MaxPlayers}** online!")); return; } var embed = new DiscordEmbedBuilder { Title = $"{service.Name} | Players: {query.NumPlayers}/{query.MaxPlayers}", Color = new Optional <DiscordColor>(new DiscordColor(settings.HexColor)), Timestamp = DateTime.Now, Thumbnail = new DiscordEmbedBuilder.EmbedThumbnail { Url = settings.ThumbnailUrl } }; foreach (var player in query.Players.OrderBy(x => x.Name)) { embed.Description += $":bust_in_silhouette: {player.Name}\n"; } await ctx.RespondAsync(embed : embed); }
public NexusServiceMenuModule() { Configuration = new NexusModuleConfiguration <ServiceMenuActionSettings>(GetType().Name, "./Config/TCAdminModule/ServiceMenuButtons/"); var config = Configuration.GetConfiguration(false); if (config != null) { Settings.ActionCommandAttribute = config.ActionCommandAttribute; Settings.ViewOrder = config.ViewOrder; } else { DefaultSettings(); } }
public static DiscordEmbedBuilder CreateSuccessEmbed(string title = "Success", string description = "The task executed successfully", bool showTimestamp = true) { var config = new NexusModuleConfiguration <SuccessEmbedSettings>("SuccessEmbedConfig", "./Config/TCAdminModule/EmbedTemplates/").GetConfiguration(); var embed = new DiscordEmbedBuilder(config.EmbedBuilder) { Title = title, Description = description }; if (showTimestamp) { embed.WithTimestamp(DateTime.Now); } return(embed); }