public async Task GetSoldierRecordAsync(string map) { var result = await TempusDataAccess.GetFullMapOverViewAsync(map); var demoRecord = result.SoldierRuns.OrderBy(x => x.Duration).First(); await ReplyNewEmbedAsync( $"**Soldier WR**" + TempusActivityService.FormatRecordSuffix(result, demoRecord), false); }
private async Task UpdateChannelAsync(string updateChannel) { if (!(_client.GetChannel(Convert.ToUInt64(updateChannel)) is ITextChannel channel)) { return; } try { var activity = await _tempusDataAccess.GetRecentActivityAsync(); var embeds = new List <Embed> { TempusActivityService.GetMapRecordsEmbed(activity.MapRecords), TempusActivityService.GetMapTopTimesEmbed(activity.MapTopTimes), TempusActivityService.GetCourseRecordsEmbed(activity.CourseRecords), TempusActivityService.GetBonusRecordsEmbed(activity.BonusRecords) }; var existingMessages = (await channel.GetMessagesAsync().FlattenAsync()).ToList(); foreach (var embed in embeds) { var existingMessage = existingMessages.FirstOrDefault(x => x.Embeds.Count == 1 && x.Embeds.First().Title == embed.Title); if (existingMessage != null && existingMessage is IUserMessage userMessage) { await userMessage.ModifyAsync(message => message.Embed = embed); existingMessages.Remove(existingMessage); } else { await channel.SendMessageAsync(embed : embed); } } if (existingMessages.Count > 0) { foreach (var oldMessage in existingMessages) { await oldMessage.DeleteAsync(); } } } catch (Exception e) { await channel.SendMessageAsync(embed : Logger.LogException(e)); } }
public async Task GetSoldierTimeAsync(string map, int place) { var result = await TempusDataAccess.GetFullMapOverViewAsync(map); var demoRecord = result.SoldierRuns.OrderBy(x => x.Duration).Skip(place - 1).First(); if (demoRecord != null) { await ReplyNewEmbedAsync( $"**Soldier #{place}**" + TempusActivityService.FormatRecordSuffix(result, demoRecord), false); } else { await ReplyNewEmbedAsync("Time not found"); } }
public async Task GetRecentBonusRecordsAsync() { var activity = await TempusDataAccess.GetRecentActivityAsync(); await ReplyEmbedAsync(TempusActivityService.GetBonusRecordsEmbed(activity.BonusRecords)); }
public async Task GetRecentTopTimesAsync() { var activity = await TempusDataAccess.GetRecentActivityAsync(); await ReplyEmbedAsync(TempusActivityService.GetMapTopTimesEmbed(activity.MapTopTimes)); }