Example #1
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);
        }
Example #2
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);
            }
        }