public async Task HelpMessage() { var assembly = Assembly.Load("Nayu"); var methods = assembly.GetTypes() .SelectMany(t => t.GetMethods()) .Where(m => m.GetCustomAttributes(typeof(Subject), false).Length > 0) .ToList(); var helpMessage = "```cs\n" + "'Standard Command List'\n" + "```" + "Use `n!command [command]` to get more info on a specific command. Ex: `n!command stats` `[Prefix 'n!']` \n "; var categoryNum = 1; var categories = new List <Categories>((Categories[])Enum.GetValues(typeof(Categories))); //removes the none enum categories.RemoveAt(0); foreach (var category in categories) { string categoryDesc = null; try { categoryDesc = MiscHelpers.GetAttributeOfType <DescriptionAttribute>(category).Description; } catch (Exception) { //do nothing } var categoryName = categoryDesc != null ? categoryDesc : category.ToString(); helpMessage += $"\n**{categoryNum}. {categoryName} -**"; foreach (var method in methods.ToList()) { var sub = method.GetCustomAttribute <Subject>(true); if (sub.GetAdminCategories() == AdminCategories.None && sub.GetChomusukeCategories() == ChomusukeCategories.None && sub.GetOwnerCategories() == OwnerCategories.None && sub.GetNSFWCategories() == NSFWCategories.None) { if (sub.GetCategories() == category) { helpMessage += $" `{MiscHelpers.GetCommandAttribute(method).Text}`"; //removes the method from the list if successful to make it faster methods.Remove(method); } } } categoryNum++; } helpMessage += "\n" + "```\n" + "# Don't include the example brackets when using commands!\n" + "# To view Moderator commands, use n!helpMod\n" + "# To view NSFW commands, use n!helpNsfw\n" + "# To view Chomusuke commands, use n!helpChom\n" + "```"; var embed = EmbedHandler.CreateEmbed(Context, "Help Command", helpMessage, EmbedHandler.EmbedMessageType.Info, false); await SendMessage(Context, embed); }
public async Task HelpMessageMod() { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { var description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var assembly = Assembly.Load("Nayu"); var methods = assembly.GetTypes() .SelectMany(t => t.GetMethods()) .Where(m => m.GetCustomAttributes(typeof(Subject), false).Length > 0) .ToList(); var helpMessage = "```cs\n" + "Moderator Command List\n" + "```" + "Use `n!command [command]` to get more info on a specific command. Ex: `n!command stats` `[Prefix 'n!']` \n "; var categoryNum = 1; var categories = new List <AdminCategories>((AdminCategories[])Enum.GetValues(typeof(AdminCategories))); //removes the none enum categories.RemoveAt(0); foreach (var category in categories) { string categoryDesc = null; try { categoryDesc = MiscHelpers.GetAttributeOfType <DescriptionAttribute>(category).Description; } catch (Exception) { //do nothing } var categoryName = categoryDesc != null ? categoryDesc : category.ToString(); helpMessage += $"\n**{categoryNum}. {categoryName} -**"; foreach (var method in methods.ToList()) { var sub = method.GetCustomAttribute <Subject>(true); if (sub.GetCategories() == Categories.None && sub.GetChomusukeCategories() == ChomusukeCategories.None && sub.GetOwnerCategories() == OwnerCategories.None && sub.GetNSFWCategories() == NSFWCategories.None) { if (sub.GetAdminCategories() == category) { helpMessage += $" `{MiscHelpers.GetCommandAttribute(method).Text}`"; //removes the method from the list if successful to make it faster methods.Remove(method); } } } categoryNum++; } helpMessage += "\n" + "```\n" + "# Don't include the example brackets when using commands!\n" + "# To view standard commands, use n!help\n" + "# To view NSFW commands, use n!helpNsfw\n" + "# To view Chomusuke commands, use n!helpChom\n" + "```"; var embed = EmbedHandler.CreateEmbed(Context, "Moderator Help Command", helpMessage, EmbedHandler.EmbedMessageType.Info, false); await SendMessage(Context, embed); }