예제 #1
0
        private async Task GetUpdateForGuildAsync(BattlefieldVUpdate latestBattlefieldVUpdate, SocketGuild guild)
        {
            GuildConfig cfg = await guildService.GetOrCreateConfigAsync(guild.Id).ConfigureAwait(false);

            if (cfg == null || !cfg.BattlefieldUpdatesEnabled)
            {
                return;
            }
            SocketTextChannel channel = guild.GetTextChannel(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 >= latestBattlefieldVUpdate.UpdateDate)
            {
                return;
            }
            var builder = new EmbedBuilder()
                          .WithColor(new Color(21, 26, 35))
                          .WithTitle("New Battlefield V Update")
                          .WithDescription($"[{latestBattlefieldVUpdate.Title}]({latestBattlefieldVUpdate.UpdateUrl})")
                          .WithFooter(latestBattlefieldVUpdate.UpdateDate.ToString());

            _ = await(channel?.SendMessageAsync("", false, builder.Build())).ConfigureAwait(false);

            cfg.LastBattlefieldUpdate = latestBattlefieldVUpdate.UpdateDate;
            await guildService.UpdateConfigAsync(cfg).ConfigureAwait(false);
        }
예제 #2
0
        private async Task GetUpdatesAsync()
        {
            BattlefieldVUpdate latestBattlefieldVUpdate = await GetLatestBattlefieldVUpdateAsync().ConfigureAwait(false);

            foreach (SocketGuild guild in discordClient?.Guilds)
            {
                await GetUpdateForGuildAsync(latestBattlefieldVUpdate, guild).ConfigureAwait(false);
            }
        }