using DSharpPlus.Entities; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using TomatenMusic.Prompt.Option; using System.Linq; using DSharpPlus; using DSharpPlus.EventArgs; using Microsoft.Extensions.Logging; using TomatenMusic.Util; namespace TomatenMusic.Prompt.Model { class SelectPrompt : DiscordPromptBase { public List<DiscordEmbed> Embeds { get; protected set; } = new List<DiscordEmbed>(); public string Content { get; protected set; } = ""; public SelectPrompt(DiscordPromptBase lastPrompt = null, string content = " Example", List<DiscordEmbed> embeds = null) : base(lastPrompt) { this.Content = content; this.Embeds = embeds == null ? new List<DiscordEmbed>() : embeds; } protected async override Task<DiscordComponent> GetComponentAsync(IPromptOption option) { SelectMenuPromptOption selectOption = (SelectMenuPromptOption)option; List<DiscordSelectComponentOption> options = new List<DiscordSelectComponentOption>(); foreach ( var item in selectOption.Options) { options.Add(new DiscordSelectComponentOption(item.Label, item.CustomID, item.Description, item.Default, item.Emoji)); } return new DiscordSelectComponent(selectOption.CustomID, selectOption.Content, options, selectOption.Disabled, selectOption.MinValues, selectOption.MaxValues); } protected async override Task<DiscordMessageBuilder> GetMessageAsync() { return new DiscordMessageBuilder() .WithContent(Content) .AddEmbeds(Embeds); } } }