public async Task GetClassicGuild() { var sb = new StringBuilder(); var embed = new EmbedBuilder(); WowClassicGuild wowClassicGuild = null; embed.Title = $"[{Context.Guild.Name}] WoW Classic Guild Association"; embed.ThumbnailUrl = Context.Guild.IconUrl; using (var db = new NinjaBotEntities()) { wowClassicGuild = db.WowClassicGuild.Where(g => g.ServerId == (long)Context.Guild.Id).FirstOrDefault(); } if (wowClassicGuild != null) { sb.AppendLine($"**Guild Name:** {wowClassicGuild.WowGuild}"); sb.AppendLine($"**Realm:** {wowClassicGuild.WowRealm}"); sb.AppendLine($"**Region:** {wowClassicGuild.WowRegion}"); } else { sb.AppendLine($"There is no guild associated to this server!"); sb.AppendLine("Placeholder for help text"); } embed.WithColor(0, 255, 155); embed.Description = sb.ToString(); await _cc.Reply(Context, embed); }
public async Task GetLogsClassic() { var embed = new EmbedBuilder(); var sb = new StringBuilder(); int maxReturn = 2; WowClassicGuild wowClassicGuild = null; using (var db = new NinjaBotEntities()) { wowClassicGuild = db.WowClassicGuild.Where(g => g.ServerId == (long)Context.Guild.Id).FirstOrDefault(); } if (wowClassicGuild != null) { var guildLogs = await _wclLogsApi.GetReportsFromGuildClassic(wowClassicGuild.WowGuild, wowClassicGuild.WowRealm, wowClassicGuild.WowRegion); if (guildLogs.Count > 0) { sb.AppendLine(); for (int i = 0; i <= (guildLogs.Count) && i <= maxReturn; i++) { sb.AppendLine($"[__**{guildLogs[i].title}** **/** **{guildLogs[i].zoneName}**__]({guildLogs[i].reportURL})"); sb.AppendLine($"\t:timer: Start time: **{_wclLogsApi.UnixTimeStampToDateTime(guildLogs[i].start).ToLocalTime()}**"); sb.AppendLine($"\t:stopwatch: End time: **{_wclLogsApi.UnixTimeStampToDateTime(guildLogs[i].end).ToLocalTime()}**"); sb.AppendLine($"\t:pencil2: Created by [**{guildLogs[i].owner}**]"); sb.AppendLine(); } _logger.LogInformation($"Sending logs to {Context.Channel.Name}, requested by {Context.User.Username}"); embed.Title = $":1234: __Logs for **{wowClassicGuild.WowGuild}** on **{wowClassicGuild.WowRealm}**__:1234: "; embed.Description = sb.ToString(); embed.WithColor(0, 255, 100); await _cc.Reply(Context, embed); } } }
private async Task PerformLogCheck(List <LogMonitoring> logWatchList, bool flip, WowClassicGuild guild) { try { var watchGuild = logWatchList.Where(w => w.ServerId == guild.ServerId).FirstOrDefault(); if (watchGuild != null) { if (watchGuild.MonitorLogs) { List <Reports> logs = null; logs = await GetReportsFromGuildClassic(guildName : guild.WowGuild, realm : guild.WowRealm.Replace("'", ""), region : guild.WowRegion, isList : true, flip : flip); if (flip) { flip = false; } else { flip = true; } if (logs != null) { var latestLog = logs[0]; DateTime startTime = UnixTimeStampToDateTime(latestLog.start); //System.Console.WriteLine($"local id [{watchGuild.ClassicReportId}] -> remote id [{latestLog.id}] for [{guild.WowGuild}] on [{guild.WowRealm}]."); if (latestLog.id != watchGuild.ClassicReportId) { using (var db = new NinjaBotEntities()) { var latestForGuild = db.LogMonitoring.Where(l => l.ServerId == guild.ServerId).FirstOrDefault(); latestForGuild.LatestLogClassic = startTime; latestForGuild.ClassicReportId = latestLog.id; await db.SaveChangesAsync(); } ISocketMessageChannel channel = _client.GetChannel((ulong)watchGuild.ChannelId) as ISocketMessageChannel; if (channel != null) { _logger.LogInformation($"Posting log for [{guild.WowGuild}] on [{guild.WowRealm}] for server [{guild.ServerName}]"); var embed = new EmbedBuilder(); embed.Title = $"New log found for [{guild.WowGuild}]!"; StringBuilder sb = new StringBuilder(); sb.AppendLine($"[__**{latestLog.title}** **/** **{latestLog.zoneName}**__]({latestLog.reportURL})"); sb.AppendLine($"\t:timer: Start time: **{UnixTimeStampToDateTime(latestLog.start).ToLocalTime()}**"); sb.AppendLine($"\t:pencil2: Created by [**{latestLog.owner}**]"); sb.AppendLine(); embed.Description = sb.ToString(); embed.WithColor(new Color(0, 0, 255)); await channel.SendMessageAsync("", false, embed.Build()); } } } } } } catch (Exception ex) { //_logger.LogError($"Error checking for logs [{guild.WowGuild}]:[{guild.WowRealm}]:[{guild.WowRealm}]! -> [{ex.Message}]"); } }
public async Task SetClassicGuild(string guildName, string realm, string region = "US") { var embed = new EmbedBuilder(); var wowClassicGuild = new WowClassicGuild(); var sb = new StringBuilder(); embed.ThumbnailUrl = Context.Guild.IconUrl; if (!_wclRegions.Contains(region.ToUpper())) { embed.Title = "Error setting guild!"; embed.WithColor(255, 0, 0); sb.AppendLine("Please specify a valid region."); sb.AppendLine(); sb.AppendLine("**Possible regions:**"); foreach (var reg in _wclRegions) { sb.AppendLine(reg); } embed.Description = sb.ToString(); await _cc.Reply(Context, embed); return; } wowClassicGuild.ServerId = (long)Context.Guild.Id; wowClassicGuild.SetById = (long)Context.User.Id; wowClassicGuild.WowGuild = guildName; wowClassicGuild.WowRealm = realm; wowClassicGuild.WowRegion = region; wowClassicGuild.SetBy = Context.User.Username; wowClassicGuild.TimeSet = DateTime.Now; wowClassicGuild.ServerName = Context.Guild.Name; try { using (var db = new NinjaBotEntities()) { var currentGuild = db.WowClassicGuild.Where(g => g.ServerId == (long)Context.Guild.Id).FirstOrDefault(); if (currentGuild != null) { db.Remove(currentGuild); } db.WowClassicGuild.Add(wowClassicGuild); await db.SaveChangesAsync(); } embed.Title = $"[{Context.Guild.Name}] WoW Classic Guild Association"; sb.AppendLine($"**Guild Name:** {wowClassicGuild.WowGuild}"); sb.AppendLine($"**Realm:** {wowClassicGuild.WowRealm}"); sb.AppendLine($"**Region:** {wowClassicGuild.WowRegion}"); embed.Description = sb.ToString(); embed.WithFooter(new EmbedFooterBuilder { Text = $"Change made by [{Context.User.Username}]", IconUrl = Context.User.GetAvatarUrl() }); embed.WithColor(0, 255, 155); await _cc.Reply(Context, embed); } catch (Exception ex) { _logger.LogError($"Error setting classic guild for {Context.Guild.Name} -> [{ex.Message}]"); } }