public static async Task DisplayModuleHelpAsync(ModuleInfo module, ICommandContext context) { string prefix = ExtractPrefixFromContext(context); IEnumerable <CommandInfo> displayable = module.Commands .Where(c => c.CheckPreconditionsAsync(context).GetAwaiter().GetResult().IsSuccess && !c.HasAttribute <HideFromHelpAttribute>()); bool displayModuleHelp = displayable.Count() > 0 && !module.HasAttribute <HideFromHelpAttribute>(); if (displayModuleHelp) { EmbedBuilder builder = new EmbedBuilder() .WithTitle(module.Name.Sanitize()) .WithColor(module.GetColor()) .WithFields(displayable.Select(c => InfoToEmbedField(c, prefix))); if (!string.IsNullOrEmpty(module.Summary)) { builder.WithDescription(module.Summary); } await builder.Build() .SendToChannel(context.Channel); } }