public static FWFactionData GetFWData(char faction) { var fwData = new FWFactionData(); switch (faction) { case 'c': fwData.factionId = 500001; fwData.oppFactionId = 500004; fwData.factionName = "Caldari"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionCaldari; fwData.factionCorpId = 1000180; break; case 'g': fwData.factionId = 500004; fwData.oppFactionId = 500001; fwData.factionName = "Gallente"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionGallente; fwData.factionCorpId = 1000181; break; case 'a': fwData.factionId = 500003; fwData.oppFactionId = 500002; fwData.factionName = "Amarr"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionAmarr; fwData.factionCorpId = 1000179; break; case 'm': fwData.factionId = 500002; fwData.oppFactionId = 500003; fwData.factionName = "Minmatar"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionMinmatar; fwData.factionCorpId = 1000182; break; default: return(null); } return(fwData); }
public static async Task DisplayBadStandings(ICommandContext context, string commandParams) { if (_isDisplayBadStandingsRunning) { await APIHelper.DiscordAPI.ReplyMessageAsync(context, LM.Get("badstandBusy")); return; } _isDisplayBadStandingsRunning = true; try { if (string.IsNullOrEmpty(commandParams)) { await APIHelper.DiscordAPI.ReplyMessageAsync(context, LM.Get("badstandHelp", SettingsManager.Settings.Config.BotDiscordCommandPrefix, "badstand")); return; } //var arr = commandParams.Split(' '); var stWho = commandParams; FWFactionData data = null; bool isFaction = false; switch (stWho.ToLower()) { case "c": case "caldari": case "g": case "gallente": case "a": case "amarr": case "m": case "minmatar": data = GetFWData(stWho[0]); isFaction = true; break; case "state protectorate": data = GetFWData('c'); break; case "federal defence union": data = GetFWData('g'); break; case "24th imperial crusade": data = GetFWData('a'); break; case "tribal liberation force": data = GetFWData('m'); break; default: data = await GetCorpData(stWho); break; } var users = await SQLHelper.GetAuthUsersWithPerms((int)UserStatusEnum.Authed); if (!users.Any()) { await APIHelper.DiscordAPI.ReplyMessageAsync(context, LM.Get("badstandNoUsers")); return; } var list = new List <StandsEntity>(); var from_t = isFaction ? "faction" : "npc_corp"; var lookupId = isFaction ? data.factionId : data.factionCorpId; foreach (var user in users) { if (!SettingsManager.HasCharStandingsScope(user.Data.PermissionsList)) { continue; } var token = await APIHelper.ESIAPI.RefreshToken(user.RefreshToken, SettingsManager.Settings.WebServerModule.CcpAppClientId, SettingsManager.Settings.WebServerModule.CcpAppSecret); if (string.IsNullOrEmpty(token)) { continue; } var st = await APIHelper.ESIAPI.GetcharacterStandings("FWStats", user.CharacterId, token); var exStand = st.FirstOrDefault(a => a.from_type == from_t && a.from_id == lookupId); if (exStand == null) { continue; } list.Add(new StandsEntity { Name = user.Data.CharacterName, CharId = user.CharacterId, Stand = exStand.standing, Tickers = "" }); } if (!list.Any() || list.All(a => a.Stand >= 0)) { await APIHelper.DiscordAPI.ReplyMessageAsync(context, LM.Get("badstandNoNegative")); return; } list = list.OrderBy(a => a.Stand).TakeSmart(10).ToList(); var sb = new StringBuilder(); foreach (var entity in list) { sb.Append($"{entity.Name} ({entity.Stand:N2})\n"); } var embed = new EmbedBuilder() .WithTitle(LM.Get("badstandTitle", data.factionName)) .AddField(LM.Get("badstandTopTenTitle"), sb.ToString(), true) .WithColor(0xFF0000); if (!string.IsNullOrEmpty(data.factionImage)) { embed.WithThumbnailUrl(data.factionImage); } await APIHelper.DiscordAPI.ReplyMessageAsync(context, " ", embed.Build()).ConfigureAwait(false); } finally { _isDisplayBadStandingsRunning = false; } }
public static async Task <FWFactionData> GetCorpData(string command) { var fwData = new FWFactionData(); switch (command.ToLower()) { case "c": case "caldari": fwData.factionId = 500001; fwData.oppFactionId = 500004; fwData.factionName = "Caldari"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionCaldari; fwData.factionCorpId = 1000180; break; case "g": case "gallente": fwData.factionId = 500004; fwData.oppFactionId = 500001; fwData.factionName = "Gallente"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionGallente; fwData.factionCorpId = 1000181; break; case "a": case "amarr": fwData.factionId = 500003; fwData.oppFactionId = 500002; fwData.factionName = "Amarr"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionAmarr; fwData.factionCorpId = 1000179; break; case "m": case "minmatar": fwData.factionId = 500002; fwData.oppFactionId = 500003; fwData.factionName = "Minmatar"; fwData.factionImage = SettingsManager.Settings.Resources.ImgFactionMinmatar; fwData.factionCorpId = 1000182; break; default: var res = (await APIHelper.ESIAPI.SearchCorporationId("LP", command))?.corporation?.FirstOrDefault(); if (res.HasValue) { var npcCorps = await APIHelper.ESIAPI.GetNpcCorps("LP"); if (!npcCorps.Contains(res.Value)) { return(null); } fwData.factionImage = await APIHelper.ESIAPI.GetCorporationIcons("LP", res.Value, 64); fwData.factionCorpId = res.Value; fwData.factionName = command; } else { return(null); } break; } return(fwData); }