Esempio n. 1
0
        private async Task GetUpdateForGuildAsync(BattlefieldUpdate latestBattlefieldUpdate, DiscordGuild guild)
        {
            GuildConfig cfg = await _guildService.GetOrCreateConfigAsync(guild.Id);

            if (cfg == null || !cfg.BattlefieldUpdatesEnabled)
            {
                return;
            }
            DiscordChannel channel = guild.GetChannel(cfg.BattlefieldUpdatesChannel);

            if (channel == null)
            {
                _logger.LogError($"Battlefield Updates enabled for {guild.Name} but channel {cfg.BattlefieldUpdatesChannel} is invalid");
                return;
            }
            DateTime lastUpdateUTC = cfg.LastBattlefieldUpdate ?? DateTime.MinValue;

            if (lastUpdateUTC >= latestBattlefieldUpdate.UpdateDate)
            {
                return;
            }
            var builder = new DiscordEmbedBuilder()
                          .WithColor(new DiscordColor(21, 26, 35))
                          .WithTitle(latestBattlefieldUpdate.Title)
                          .WithUrl(latestBattlefieldUpdate.UpdateUrl)
                          .WithDescription(latestBattlefieldUpdate.Description)
                          .WithImageUrl(latestBattlefieldUpdate.ImgUrl)
                          .WithFooter(latestBattlefieldUpdate.UpdateDate.ToString());

            await(channel?.SendMessageAsync(builder.Build()));

            cfg.LastBattlefieldUpdate = latestBattlefieldUpdate.UpdateDate;
            await _guildService.UpdateConfigAsync(cfg);
        }
Esempio n. 2
0
        private async Task GetUpdatesAsync()
        {
            BattlefieldUpdate latestBattlefieldVUpdate = await GetLatestBattlefieldUpdateAsync();

            foreach (DiscordGuild guild in _discordClient?.Guilds.Values)
            {
                await GetUpdateForGuildAsync(latestBattlefieldVUpdate, guild);
            }
        }