コード例 #1
0
        private async Task NotifyNullsecCampaign(JsonClasses.NullCampaignItem campaign, string message, string region, string system, string defender, NullCampaignGroup @group,
                                                 uint color)
        {
            try
            {
                var embed = new EmbedBuilder()
                            .WithTitle(message)
                            .AddInlineField(LM.Get("NC_StartTime"), LM.Get("NC_StartTimeText", $"{campaign.Time.ToString(Settings.Config.ShortTimeFormat)} ET", (campaign.Time - DateTimeOffset.UtcNow).ToFormattedString()))
                            .AddInlineField(LM.Get("NC_type"), campaign.event_type == "ihub_defense" ? "IHUB" : "TCU")
                            .AddInlineField(LM.Get("NC_Score"), LM.Get("NC_ScoreText", campaign.attackers_score.ToPercent(), campaign.defender_score.ToPercent())) //"Attacker {0} vs Defender {1}"
                            .AddInlineField(LM.Get("NC_Location"), LM.Get("NC_LocationText", region, system))                                                      // "{0} / {1}"
                            .AddInlineField(LM.Get("NC_Defender"), defender)
                            .WithTimestamp(campaign.Time)
                            .WithColor(color);

                if (!string.IsNullOrEmpty(Settings.Resources.ImgEntosisAlert))
                {
                    embed.WithThumbnailUrl(Settings.Resources.ImgEntosisAlert);
                }

                var mention = group.Mentions.Any() ? string.Join(", ", group.Mentions) : group.DefaultMention;

                await APIHelper.DiscordAPI.SendMessageAsync(APIHelper.DiscordAPI.GetChannel(group.DiscordChannelId), mention, embed.Build()).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                await LogHelper.LogEx(ex.Message, ex, Category);
            }
        }
コード例 #2
0
 public static async Task <List <JsonClasses.NullCampaignItem> > GetNullCampaigns(string group)
 {
     return((await SelectData("null_campaigns", new[] { "data", "lastAnnounce" }, new Dictionary <string, object> {
         { "groupKey", group }
     }))
            .Select(item =>
     {
         var i = new JsonClasses.NullCampaignItem().FromJson((string)item[0]);
         i.LastAnnounce = Convert.ToInt64(item[1]);
         return i;
     }).ToList());
 }
コード例 #3
0
        private async Task PrepareMessage(JsonClasses.NullCampaignItem campaign, NullCampaignGroup @group, string message, uint color)
        {
            var system = await APIHelper.ESIAPI.GetSystemData(Reason, campaign.solar_system_id);

            var c = await APIHelper.ESIAPI.GetConstellationData(Reason, system.constellation_id);

            var region = await APIHelper.ESIAPI.GetRegionData(Reason, c.region_id);

            var defender = await APIHelper.ESIAPI.GetAllianceData(Reason, campaign.defender_id);

            await NotifyNullsecCampaign(campaign, message, region.name, system.name, defender.name, group, color);
        }