static void GetWars_ESI() { var ourWars = new List <long>(); var removeWars = new List <long>(); try { ourWars = Properties.Settings.Default.CurrentWars.Split(',').Select(s => Int64.Parse(s)).ToList(); } catch (Exception ex) { } var atWar = ourWars.Any(); var counter = 0; var allWars = War.GetWarIds().OrderBy(w => w).ToList(); var newWars = allWars.Where(w => w > Properties.Settings.Default.LastMessageId).ToList(); Console.WriteLine(string.Format("Starting at war ID {0}", (Properties.Settings.Default.LastMessageId + 1).ToString())); newWars.ForEach(w => { if (!ourWars.Contains(w)) { if (counter == 20) { System.Threading.Thread.Sleep(6000); counter = 0; } try { var x = PingWar(w, "Started"); if (x.HasValue) { ourWars.Add(x.Value); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { counter++; } } }); ourWars.ForEach(f => { var warDeets = new War(f); if (warDeets.EndTime.HasValue && warDeets.EndTime.Value < DateTime.UtcNow) { PingWar(f, "Ended"); removeWars.Add(f); } }); ourWars = ourWars.Except(removeWars).ToList(); if (ourWars.Any() && atWar != ourWars.Any()) { Slack.Plugin.SetChannelTopic(Properties.Settings.Default.Group, Properties.Settings.Default.Room, Properties.Settings.Default.Token, WarMessage); } else if (!ourWars.Any() && atWar != ourWars.Any()) { Slack.Plugin.SetChannelTopic(Properties.Settings.Default.Group, Properties.Settings.Default.Room, Properties.Settings.Default.Token, NoWarMessage); } Properties.Settings.Default.CurrentWars = String.Join(",", ourWars.Select(i => i.ToString()).ToArray()); if (allWars.Count() > 0) { Properties.Settings.Default.LastMessageId = allWars.Max(); } Properties.Settings.Default.Save(); }