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); }
private async Task GetUpdatesAsync() { BattlefieldVUpdate latestBattlefieldVUpdate = await GetLatestBattlefieldVUpdateAsync().ConfigureAwait(false); foreach (SocketGuild guild in discordClient?.Guilds) { await GetUpdateForGuildAsync(latestBattlefieldVUpdate, guild).ConfigureAwait(false); } }