示例#1
0
        private async Task SendHolderChangedMessage(JsonClasses.SovStructureData data, JsonClasses.SovStructureData old, SovTrackerGroup @group, bool isTcu)
        {
            var system = await APIHelper.ESIAPI.GetSystemData(Reason, data?.solar_system_id ?? old.solar_system_id);

            var owner = data != null ? await APIHelper.ESIAPI.GetAllianceData(Reason, data.alliance_id) : null;

            var oldOwner = old != null ? await APIHelper.ESIAPI.GetAllianceData(Reason, old.alliance_id) : null;

            string msg;

            if (owner == null)
            {
                msg = LM.Get("sovLostStructure", isTcu? "TCU": "IHUB");
            }
            else
            {
                var oldHolder = old == null?LM.Get("sovSystemUncontested") : LM.Get("sovSystemWasOwnedBy", oldOwner.name, oldOwner.ticker);

                var timers = data == null
                    ? null
                    : LM.Get("sovNextVulnerability", data.vulnerable_start_time.ToString(Settings.Config.ShortTimeFormat), data.vulnerable_end_time.ToString(Settings.Config.ShortTimeFormat));
                msg = $"{LM.Get("sovNewHolder", owner.name, owner.ticker)} {oldHolder}{timers}";
            }
            var embed = new EmbedBuilder()
                        .WithThumbnailUrl(Settings.Resources.ImgLowFWStand)
                        .AddField(LM.Get("sovSystem"), system?.name ?? LM.Get("Unknown"), true)
                        .AddField(LM.Get("sovMessage"), msg);
            var ch      = APIHelper.DiscordAPI.GetChannel(group.DiscordChannelId);
            var mention = string.Join(' ', group.DiscordMentions);

            if (string.IsNullOrEmpty(mention))
            {
                mention = " ";
            }
            await APIHelper.DiscordAPI.SendMessageAsync(ch, $"{mention}", embed.Build()).ConfigureAwait(false);
        }
示例#2
0
        private async Task SendIndexWarningMessage(JsonClasses.SovStructureData data, SovTrackerGroup group)
        {
            var system = await APIHelper.ESIAPI.GetSystemData(Reason, data.solar_system_id);

            var alliance = await APIHelper.ESIAPI.GetAllianceData(Reason, data.alliance_id);

            var msg   = LM.Get("sovLowIndexMessage", data.vulnerability_occupancy_level);
            var embed = new EmbedBuilder()
                        .WithThumbnailUrl(Settings.Resources.ImgLowFWStand)
                        .AddField(LM.Get("sovSystem"), system?.name ?? LM.Get("Unknown"), true)
                        .AddField(LM.Get("sovHolder"), alliance?.name ?? LM.Get("Unknown"), true)
                        .AddField(LM.Get("sovMessage"), msg);
            var ch      = APIHelper.DiscordAPI.GetChannel(group.DiscordChannelId);
            var mention = string.Join(' ', group.DiscordMentions);

            if (string.IsNullOrEmpty(mention))
            {
                mention = " ";
            }
            await APIHelper.DiscordAPI.SendMessageAsync(ch, $"{mention}", embed.Build()).ConfigureAwait(false);
        }
示例#3
0
        private List <JsonClasses.SovStructureData> GetUpdatedList(List <JsonClasses.SovStructureData> data, SovTrackerGroup group, string groupName, List <long> holderIds)
        {
            var t2 = Stopwatch.StartNew();

            try
            {
                var list                = data.ToList();
                var groupSystems        = GetParsedSolarSystems(groupName) ?? new List <long>();
                var groupConstellations = GetParsedConstellations(groupName) ?? new List <long>();
                var groupRegions        = GetParsedRegions(groupName) ?? new List <long>();
                if (groupSystems.Any())
                {
                    list = list.Where(a => groupSystems.Contains(a.solar_system_id)).ToList();
                }
                if (holderIds.Any())
                {
                    list = list.Where(a => holderIds.Contains(a.alliance_id)).ToList();
                }
                if (groupSystems.Any())
                {
                    list = list.Where(a => groupSystems.Contains(a.solar_system_id)).ToList();
                }
                var hasRegions = groupRegions.Any();
                var hasConsts  = groupConstellations.Any();
                if (hasRegions || hasConsts)
                {
                    list = list.Where(a =>
                    {
                        var system = APIHelper.ESIAPI.GetSystemData(Reason, a.solar_system_id).GetAwaiter().GetResult();
                        if (!system.DB_RegionId.HasValue)
                        {
                            return(false);
                        }
                        if (hasRegions && groupRegions.Contains(system.DB_RegionId.Value))
                        {
                            return(true);
                        }

                        return(hasConsts && @groupConstellations.Contains(system.constellation_id));
                    }).ToList();
                }
                return(list);
            }
            finally
            {
                t2.Stop();
                Debug.WriteLine($"Sov Upd: {t2.Elapsed.TotalSeconds}sec");
            }
        }