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); }
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); } }