Beispiel #1
0
        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);
            }
        }