public DiscordEmbedNotification GeneratePokestopMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city, bool useLure, bool useInvasion) { var server = whConfig.Servers[guildId]; var alertType = useInvasion ? AlertMessageType.Invasions : useLure ? AlertMessageType.Lures : AlertMessageType.Pokestops; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client.Guilds[guildId], whConfig, city, useLure, useInvasion); 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 = useInvasion ? new DiscordColor(server.DiscordEmbedColors.Pokestops.Invasions) : useLure ? LureType.BuildLureColor(server) : DiscordColor.CornflowerBlue, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, 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() })); }
public DiscordEmbedNotification GenerateWeatherMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { var server = whConfig.Servers[guildId]; var alertType = AlertMessageType.Weather; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var weatherImageUrl = IconFetcher.Instance.GetWeatherIcon(server.IconStyle, GameplayCondition); var properties = GetProperties(client.Guilds[guildId], whConfig, city, weatherImageUrl); 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 = GameplayCondition.BuildWeatherColor(server), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, 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() })); }
/// <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() })); }
public DiscordEmbedNotification GenerateGymMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, GymDetailsData oldGym, string city) { var server = whConfig.Servers[guildId]; var alertType = AlertMessageType.Gyms; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client.Guilds[guildId], whConfig, city, oldGym); 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 = Team == PokemonTeam.Mystic ? DiscordColor.Blue : Team == PokemonTeam.Valor ? DiscordColor.Red : Team == PokemonTeam.Instinct ? DiscordColor.Yellow : DiscordColor.LightGray, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, 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() })); }
public DiscordEmbedNotification GenerateQuestMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { var server = whConfig.Servers[guildId]; var alertType = AlertMessageType.Quests; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client.Guilds[guildId], whConfig, city, IconFetcher.Instance.GetQuestIcon(whConfig.Servers[guildId].IconStyle, this)); 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 = DiscordColor.Orange, 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() })); }
public DiscordEmbedNotification GeneratePokestopMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { var server = whConfig.Servers[guildId]; var alertType = HasInvasion ? AlertMessageType.Invasions : HasLure ? AlertMessageType.Lures : AlertMessageType.Pokestops; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client.Guilds[guildId], whConfig, city); 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 = HasInvasion ? DiscordColor.Red : HasLure ? (LureType == PokestopLureType.Normal ? DiscordColor.HotPink : LureType == PokestopLureType.Glacial ? DiscordColor.CornflowerBlue : LureType == PokestopLureType.Mossy ? DiscordColor.SapGreen : LureType == PokestopLureType.Magnetic ? DiscordColor.Gray : DiscordColor.CornflowerBlue) : DiscordColor.CornflowerBlue, 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() })); }
/// <summary> /// Generate a Discord embed Pokemon 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 Pokemon was found in</param> /// <returns>DiscordEmbedNotification object to send</returns> public async Task <DiscordEmbedNotification> GeneratePokemonMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { // If IV has value then use alarmText if not null otherwise use default. If no stats use default missing stats alarmText var server = whConfig.Servers[guildId]; var alertType = IsMissingStats ? AlertMessageType.PokemonMissingStats : AlertMessageType.Pokemon; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var pokemonImageUrl = IconFetcher.Instance.GetPokemonIcon(server.IconStyle, Id, FormId, 0, Gender, Costume, false); var properties = await GetProperties(client.Guilds[guildId], whConfig, city, pokemonImageUrl); 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 = IV.BuildColor(), 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(await Task.FromResult(new DiscordEmbedNotification(username, iconUrl, description, new List <DiscordEmbed> { eb.Build() }))); }
public DiscordEmbed GeneratePokestopMessage(DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { var alertType = HasInvasion ? AlertMessageType.Invasions : HasLure ? AlertMessageType.Lures : AlertMessageType.Pokestops; var alert = alarm?.Alerts[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client, whConfig, city); 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 = HasInvasion ? DiscordColor.Red : HasLure ? (LureType == PokestopLureType.Normal ? DiscordColor.HotPink : LureType == PokestopLureType.Glacial ? DiscordColor.CornflowerBlue : LureType == PokestopLureType.Mossy ? DiscordColor.SapGreen : LureType == PokestopLureType.Magnetic ? DiscordColor.Gray : DiscordColor.CornflowerBlue) : DiscordColor.CornflowerBlue, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = $"{(client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.Name : Strings.Creator)} | {DateTime.Now}", IconUrl = client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.IconUrl : string.Empty } }; return(eb.Build()); }
/// <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 server = whConfig.Servers[guildId]; var alertType = PokemonId > 0 ? AlertMessageType.Raids : AlertMessageType.Eggs; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var raidImageUrl = IsEgg ? IconFetcher.Instance.GetRaidEggIcon(server.IconStyle, Convert.ToInt32(Level), false, IsExEligible) : IconFetcher.Instance.GetPokemonIcon(server.IconStyle, PokemonId, Form, Evolution, Gender, Costume, false); 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 = (IsExEligible ? 0 /*ex*/ : int.Parse(Level)).BuildRaidColor(server), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, 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() })); }
public DiscordEmbed GenerateGymMessage(DiscordClient client, WhConfig whConfig, AlarmObject alarm, GymDetailsData oldGym, string city) { var alertType = AlertMessageType.Gyms; var alert = alarm?.Alerts[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client, whConfig, city, oldGym); 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 = Team == PokemonTeam.Mystic ? DiscordColor.Blue : Team == PokemonTeam.Valor ? DiscordColor.Red : Team == PokemonTeam.Instinct ? DiscordColor.Yellow : DiscordColor.LightGray, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = $"{(client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.Name : Strings.Creator)} | {DateTime.Now}", IconUrl = client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.IconUrl : string.Empty } }; return(eb.Build()); }
public DiscordEmbed GenerateRaidMessage(DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city, string raidImageUrl) { var alertType = PokemonId > 0 ? AlertMessageType.Raids : AlertMessageType.Eggs; var alert = alarm?.Alerts[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client, whConfig, city); var eb = new DiscordEmbedBuilder { Title = DynamicReplacementEngine.ReplaceText(alert.Title, properties), Url = DynamicReplacementEngine.ReplaceText(alert.Url, properties), ImageUrl = DynamicReplacementEngine.ReplaceText(alert.ImageUrl, properties), ThumbnailUrl = raidImageUrl,//DynamicReplacementEngine.ReplaceText(alert.IconUrl, properties), Description = DynamicReplacementEngine.ReplaceText(alert.Content, properties), Color = Level.BuildRaidColor(), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = $"{(client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.Name : Strings.Creator)} | {DateTime.Now}", IconUrl = client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.IconUrl : string.Empty } }; return(eb.Build()); }
/// <summary> /// Generate a Discord embed Pokemon 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 Pokemon was found in</param> /// <returns>DiscordEmbedNotification object to send</returns> public DiscordEmbedNotification GeneratePokemonMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city) { // If IV has value then use alarmText if not null otherwise use default. If no stats use default missing stats alarmText var server = whConfig.Servers[guildId]; var alertType = IsMissingStats ? AlertMessageType.PokemonMissingStats : AlertMessageType.Pokemon; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var pokemonImageUrl = IconFetcher.Instance.GetPokemonIcon(server.IconStyle, Id, FormId, 0, Gender, Costume, false); var properties = GetProperties(new MessageProperties { Guild = client.Guilds[guildId], Config = whConfig, City = city, ImageUrl = pokemonImageUrl, }); 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 = MatchesGreatLeague || MatchesUltraLeague ? GetPvPColor(GreatLeague, UltraLeague, server) : IV.BuildPokemonIVColor(server), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, 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() })); }
public DiscordEmbed GenerateNestMessage(ulong guildId, DiscordClient client, Nest nest) { var alertMessageType = AlertMessageType.Nests; var alertMessage = /*alarm?.Alerts[alertMessageType] ??*/ AlertMessage.Defaults[alertMessageType]; // TODO: Add nestAlert config option var server = _dep.WhConfig.Servers[guildId]; var pokemonImageUrl = IconFetcher.Instance.GetPokemonIcon(server.IconStyle, nest.PokemonId); var properties = GetProperties(client.Guilds[guildId], nest, pokemonImageUrl); var eb = new DiscordEmbedBuilder { Title = DynamicReplacementEngine.ReplaceText(alertMessage.Title, properties), Url = DynamicReplacementEngine.ReplaceText(alertMessage.Url, properties), ImageUrl = DynamicReplacementEngine.ReplaceText(alertMessage.ImageUrl, properties), ThumbnailUrl = DynamicReplacementEngine.ReplaceText(alertMessage.IconUrl, properties), Description = DynamicReplacementEngine.ReplaceText(alertMessage.Content, properties), Color = DiscordColor.Green, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alertMessage.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alertMessage.Footer?.IconUrl, properties) } }; return(eb.Build()); }
//public bool IsUnderLevel(int targetLevel) //{ // return int.TryParse(Level, out var level) && level < targetLevel; //} //public bool IsAboveLevel(int targetLevel) //{ // return int.TryParse(Level, out var level) && level >= targetLevel; //} public async Task <DiscordEmbed> GeneratePokemonMessage(DiscordClient client, WhConfig whConfig, PokemonData pkmn, AlarmObject alarm, string city, string pokemonImageUrl) { //If IV has value then use alarmText if not null otherwise use default. If no stats use default missing stats alarmText var alertMessageType = pkmn.IsMissingStats ? AlertMessageType.PokemonMissingStats : AlertMessageType.Pokemon; var alertMessage = alarm?.Alerts[alertMessageType] ?? AlertMessage.Defaults[alertMessageType]; var properties = await GetProperties(client, whConfig, city); var eb = new DiscordEmbedBuilder { Title = DynamicReplacementEngine.ReplaceText(alertMessage.Title, properties), Url = DynamicReplacementEngine.ReplaceText(alertMessage.Url, properties), ImageUrl = DynamicReplacementEngine.ReplaceText(alertMessage.ImageUrl, properties), ThumbnailUrl = pokemonImageUrl, Description = DynamicReplacementEngine.ReplaceText(alertMessage.Content, properties), Color = pkmn.IV.BuildColor(), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = $"{(client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.Name : Strings.Creator)} | {DateTime.Now}", IconUrl = client.Guilds.ContainsKey(whConfig.Discord.GuildId) ? client.Guilds[whConfig.Discord.GuildId]?.IconUrl : string.Empty } }; return(await Task.FromResult(eb.Build())); }