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); }
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()); }