/// <summary> /// Generate a Discord embed Raid message /// </summary> /// <param name="guildId">Guild the notification is for</param> /// <param name="client">Discord client</param> /// <param name="whConfig">Webhook config</param> /// <param name="alarm">Webhook alarm</param> /// <param name="city">City the Raid was found in</param> /// <returns>DiscordEmbedNotification object to send</returns> public DiscordEmbedNotification GenerateRaidMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { var alertType = PokemonId > 0 ? AlertMessageType.Raids : AlertMessageType.Eggs; var alert = alarm?.Alerts[alertType] ?? AlertMessage.Defaults[alertType]; var server = whConfig.Servers[guildId]; var raidImageUrl = IsEgg ? this.GetRaidEggIcon(whConfig, server.IconStyle) : PokemonId.GetPokemonIcon(Form, 0, whConfig, server.IconStyle); var properties = GetProperties(client.Guilds[guildId], whConfig, city, raidImageUrl); var eb = new DiscordEmbedBuilder { Title = DynamicReplacementEngine.ReplaceText(alert.Title, properties), Url = DynamicReplacementEngine.ReplaceText(alert.Url, properties), ImageUrl = DynamicReplacementEngine.ReplaceText(alert.ImageUrl, properties), ThumbnailUrl = DynamicReplacementEngine.ReplaceText(alert.IconUrl, properties), Description = DynamicReplacementEngine.ReplaceText(alert.Content, properties), Color = Level.BuildRaidColor(), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text ?? client.Guilds[guildId]?.Name ?? DateTime.Now.ToString(), properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl ?? client.Guilds[guildId]?.IconUrl ?? string.Empty, properties) } }; var username = DynamicReplacementEngine.ReplaceText(alert.Username, properties); var iconUrl = DynamicReplacementEngine.ReplaceText(alert.AvatarUrl, properties); var description = DynamicReplacementEngine.ReplaceText(alarm?.Description, properties); return(new DiscordEmbedNotification(username, iconUrl, description, new List <DiscordEmbed> { eb.Build() })); }