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()); }
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)); }
public static async Task SendEmbedMessageAsync(this DiscordMember member, Embed embed, EmbedFooterStyle embedFooterStyle = EmbedFooterStyle.Default) { await member.SendMessageAsync("", false, EmbedBuilder(embed, member, embedFooterStyle)); }
/// <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)); }