예제 #1
0
        public void GetsModulesOnly()
        {
            var result     = sut.GetAllModules();
            var nonModules = result.Where(typeInfo => !typeof(ModuleBase).IsAssignableFrom(typeInfo) &&
                                          !typeof(ModuleBase <SocketCommandContext>).IsAssignableFrom(typeInfo) &&
                                          !typeInfo.IsAbstract);

            Assert.That(result, Is.Not.Empty);
            Assert.That(nonModules, Is.Empty);
        }
예제 #2
0
        private async Task ShowTopLevelHelp()
        {
            var modules = moduleInfoUtils.GetAllModules();
            var eb      = new EmbedBuilder()
            {
                Title       = "PestoBot Help",
                Description = "Here's a brief preview of my commands. To find more information about a specific command you can use **Help \"CommandName\"**"
            };

            //Add a list of modules & descriptions as inline fields to the embed
            foreach (var module in modules)
            {
                //Ignore all owner & debug modules
                if (module.FullName != null && (!module.FullName.Contains("OwnerModule") && !module.FullName.Contains("Debug")))
                {
                    eb.AddField(module.Name.Replace("Module", ""), GetMethodsStringForEmbed(module), true);
                }
            }

            await ReplyAsync("", false, eb.Build());
        }