Exemplo n.º 1
0
        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()
            }));
        }
Exemplo n.º 2
0
        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()
            }));
        }
Exemplo n.º 3
0
        /// <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()
            }));
        }
Exemplo n.º 4
0
        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()
            }));
        }
Exemplo n.º 5
0
        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()
            }));
        }
Exemplo n.º 6
0
        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()
            }));
        }
Exemplo n.º 7
0
        /// <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()
            })));
        }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
        /// <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()
            }));
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
        /// <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()
            }));
        }
Exemplo n.º 13
0
        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());
        }
Exemplo n.º 14
0
        //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()));
        }