Ejemplo n.º 1
0
        private static DiscordEmbed EmbedBuilder(Embed embed, DiscordUser user, EmbedFooterStyle embedFooterStyle = EmbedFooterStyle.Default)
        {
            var embedBuilder = new DiscordEmbedBuilder
            {
                Title       = !string.IsNullOrWhiteSpace(embed.Title) ? embed.Title : null,
                Description = !string.IsNullOrWhiteSpace(embed.Description) ? embed.Description : null,
                Url         = !string.IsNullOrWhiteSpace(embed.Url) ? embed.Url : null,
                Color       = embed.Color,
                ImageUrl    = !string.IsNullOrWhiteSpace(embed.Image) ? embed.Image : null,
                Thumbnail   = new DiscordEmbedBuilder.EmbedThumbnail
                {
                    Url = !string.IsNullOrWhiteSpace(embed.Thumbnail) ? embed.Thumbnail : null
                },
                Timestamp = DateTimeOffset.UtcNow
            };

            if (embed.Author != null)
            {
                embedBuilder.WithAuthor(embed.Author.Name, embed.Author.Url, embed.Author.Icon);
            }

            if (embed.Fields != null)
            {
                foreach (var field in embed.Fields)
                {
                    embedBuilder.AddField(field.Name, field.Value, field.Inline);
                }
            }

            if (embed.Footer != null)
            {
                embedBuilder.WithFooter(embed.Footer.Text, embed.Footer.Icon);
            }
            else
            {
                if (embedFooterStyle == EmbedFooterStyle.Default)
                {
                    if (user != null)
                    {
                        embedBuilder.WithFooter($"Requested by {user.GetUsertag()} | {user.Id}", user.AvatarUrl);
                    }
                }
            }

            return(embedBuilder.Build());
        }
Ejemplo n.º 2
0
 public static async Task SendEmbedMessageAsync(this DiscordChannel channel, Embed embed, DiscordUser user = null, EmbedFooterStyle embedFooterStyle = EmbedFooterStyle.Default)
 {
     await channel.SendMessageAsync("", false, EmbedBuilder(embed, user, embedFooterStyle));
 }
Ejemplo n.º 3
0
 public static async Task SendEmbedMessageAsync(this DiscordMember member, Embed embed, EmbedFooterStyle embedFooterStyle = EmbedFooterStyle.Default)
 {
     await member.SendMessageAsync("", false, EmbedBuilder(embed, member, embedFooterStyle));
 }
Ejemplo n.º 4
0
 /// <summary>
 ///     Advanced embedded message.
 /// </summary>
 /// <param name="context">Discord's socket command context.</param>
 /// <param name="embed"></param>
 /// <param name="embedFooterStyle"></param>
 /// <returns>Returns a embedded message in the channel in which the call was triggered.</returns>
 public static async Task SendEmbedMessageAsync(this CommandContext context, Embed embed, EmbedFooterStyle embedFooterStyle = EmbedFooterStyle.Default)
 {
     await context.Channel.SendMessageAsync("", false, EmbedBuilder(embed, context.User, embedFooterStyle));
 }