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