public async Task UpdateData(JsonClasses.CharacterData characterData, JsonClasses.CorporationData rCorp = null, JsonClasses.AllianceData rAlliance = null, string permissions = null) { rCorp = rCorp ?? await APIHelper.ESIAPI.GetCorporationData(LogCat.AuthCheck.ToString(), characterData.corporation_id, true); Data.CharacterName = characterData.name; Data.CorporationId = characterData.corporation_id; Data.CorporationName = rCorp?.name; Data.CorporationTicker = rCorp?.ticker; Data.AllianceId = characterData.alliance_id ?? 0; if (Data.AllianceId > 0) { rAlliance = rAlliance ?? await APIHelper.ESIAPI.GetAllianceData(LogCat.AuthCheck.ToString(), characterData.alliance_id, true); Data.AllianceName = rAlliance?.name; Data.AllianceTicker = rAlliance?.ticker; } if (permissions != null) { Data.Permissions = permissions; } }
public async Task <bool> RefreshRadius(string reason, JsonZKill.Killmail kill) { if (killmailID > 0) { return(true); } try { killmailID = kill.killmail_id; value = kill.zkb.totalValue; systemId = kill.solar_system_id; rSystem = await APIHelper.ESIAPI.GetSystemData(reason, systemId); isUnreachableSystem = systemId == 31000005; if (rSystem != null) { sysName = rSystem.name == rSystem.system_id.ToString() ? "Abyss" : (rSystem.name ?? "J"); isUnreachableSystem = rSystem.IsUnreachable(); } else { sysName = "?"; } victimCharacterID = kill.victim.character_id; victimCorpID = kill.victim.corporation_id; victimAllianceID = kill.victim.alliance_id; attackers = kill.attackers; finalBlowAttacker = attackers.FirstOrDefault(a => a.final_blow); finalBlowAttackerCorpId = finalBlowAttacker?.corporation_id ?? 0; finalBlowAttackerAllyId = finalBlowAttacker?.alliance_id ?? 0; shipID = kill.victim.ship_type_id; killTime = kill.killmail_time.ToString(SettingsManager.Settings.Config.ShortTimeFormat); rVictimCorp = await APIHelper.ESIAPI.GetCorporationData(reason, victimCorpID); rAttackerCorp = finalBlowAttackerCorpId > 0 ? await APIHelper.ESIAPI.GetCorporationData(reason, finalBlowAttackerCorpId) : null; rVictimAlliance = victimAllianceID != 0 ? await APIHelper.ESIAPI.GetAllianceData(reason, victimAllianceID) : null; rAttackerAlliance = finalBlowAttackerAllyId > 0 ? await APIHelper.ESIAPI.GetAllianceData(reason, finalBlowAttackerAllyId) : null; rShipType = await APIHelper.ESIAPI.GetTypeId(reason, shipID); rVictimCharacter = await APIHelper.ESIAPI.GetCharacterData(reason, victimCharacterID); rAttackerCharacter = await APIHelper.ESIAPI.GetCharacterData(reason, finalBlowAttacker?.character_id); systemSecurityStatus = Math.Round(rSystem.security_status, 1).ToString("0.0"); dic = new Dictionary <string, string> { { "{shipID}", shipID.ToString() }, { "{shipType}", rShipType?.name }, { "{iskValue}", value.ToString("n0") }, { "{systemName}", sysName }, { "{systemSec}", systemSecurityStatus }, { "{victimName}", rVictimCharacter?.name }, { "{victimCorpName}", rVictimCorp?.name }, { "{victimCorpTicker}", rVictimCorp?.ticker }, { "{victimAllyName}", rVictimAlliance?.name }, { "{victimAllyTicker}", rVictimAlliance == null ? null : $"<{rVictimAlliance.ticker}>" }, { "{attackerName}", rAttackerCharacter?.name }, { "{attackerCorpName}", rAttackerCorp?.name }, { "{attackerCorpTicker}", rAttackerCorp?.ticker }, { "{attackerAllyTicker}", rAttackerAlliance == null ? null : $"<{rAttackerAlliance.ticker}>" }, { "{attackerAllyName}", rAttackerAlliance?.name }, { "{attackersCount}", attackers?.Length.ToString() }, { "{kmId}", killmailID.ToString() }, { "{isNpcKill}", isNPCKill.ToString() }, { "{timestamp}", killTime } }; return(true); } catch (Exception ex) { killmailID = 0; await LogHelper.LogEx("refresh ex", ex, LogCat.RadiusKill); return(false); } }
private static async Task <bool> AuthGrantRoles(ulong channelId, string characterID, Dictionary <int, List <string> > foundList, JsonClasses.CharacterData characterData, JsonClasses.CorporationData corporationData, string remainder, ulong discordId) { var rolesToAdd = new List <SocketRole>(); var allianceID = characterData.alliance_id ?? 0; var corpID = characterData.corporation_id; var authSettings = TickManager.GetModule <WebAuthModule>()?.Settings.WebAuthModule; var missedRoles = new List <string>(); try { //Check for Corp roles if (foundList.ContainsKey(corpID)) { var cRoles = foundList[corpID]; cRoles.ForEach(a => { var f = APIHelper.DiscordAPI.GetGuildRole(a); if (f != null && !rolesToAdd.Contains(f)) { rolesToAdd.Add(f); } else { missedRoles.Add(a); } }); } //Check for Alliance roles if (foundList.ContainsKey(allianceID)) { var cRoles = foundList[allianceID]; cRoles.ForEach(a => { var f = APIHelper.DiscordAPI.GetGuildRole(a); if (f != null && !rolesToAdd.Contains(f)) { rolesToAdd.Add(f); } else { missedRoles.Add(a); } }); } var discordUser = APIHelper.DiscordAPI.GetUser(discordId); if (authSettings.AuthReportChannel != 0) { await APIHelper.DiscordAPI.SendMessageAsync(authSettings.AuthReportChannel, LM.Get("grantRolesMessage", characterData.name)) .ConfigureAwait(false); } await APIHelper.DiscordAPI.AssignRolesToUser(discordUser, rolesToAdd); if (missedRoles.Any()) { await LogHelper.LogWarning($"Missing discord roles: {string.Join(',', missedRoles)}"); } var rolesString = new StringBuilder(); foreach (var role in discordUser.Roles) { if (role.Name.StartsWith("@everyone")) { continue; } rolesString.Append(role.Name.Replace("\"", "&br;")); rolesString.Append(","); } if (rolesString.Length > 0) { rolesString.Remove(rolesString.Length - 1, 1); } await SQLHelper.SQLiteDataUpdate("pendingUsers", "active", "0", "authString", remainder); if (channelId != 0) { await APIHelper.DiscordAPI.SendMessageAsync(channelId, LM.Get("msgAuthSuccess", discordUser.Mention, characterData.name)); } var eveName = characterData.name; var discordID = discordUser.Id; var addedOn = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); await SQLHelper.SQLiteDataInsertOrUpdate("authUsers", new Dictionary <string, object> { { "eveName", eveName }, { "characterID", characterID }, { "discordID", discordID.ToString() }, { "role", rolesString.ToString() }, { "active", "yes" }, { "addedOn", addedOn } }); if (authSettings.EnforceCorpTickers || authSettings.EnforceCharName) { var nickname = ""; if (authSettings.EnforceCorpTickers) { nickname = $"[{corporationData.ticker}] "; } if (authSettings.EnforceCharName) { nickname += $"{eveName}"; } else { nickname += $"{discordUser.Username}"; } try { //will throw ex on admins await discordUser.ModifyAsync(x => x.Nickname = nickname); } catch { //ignore } await APIHelper.DiscordAPI.Dupes(discordUser); } } catch (Exception ex) { await LogHelper.LogEx($"Failed adding Roles to User {characterData.name}, Reason: {ex.Message}", ex, LogCat.Discord); return(false); } return(true); }
public async Task <bool> Refresh(string reason, JsonZKill.Killmail kill) { if (killmailID > 0) { return(true); } try { killmailID = kill.killmail_id; killTime = kill.killmail_time.ToString(SettingsManager.Settings.Config.ShortTimeFormat); victimShipID = kill.victim.ship_type_id; value = kill.zkb.totalValue; victimCharacterID = kill.victim.character_id; victimCorpID = kill.victim.corporation_id; victimAllianceID = kill.victim.alliance_id; attackers = kill.attackers; finalBlowAttacker = attackers.FirstOrDefault(a => a.final_blow); finalBlowAttackerCharacterId = finalBlowAttacker.character_id; attackerShipID = finalBlowAttacker?.ship_type_id ?? 0; finalBlowAttackerCorpId = finalBlowAttacker?.corporation_id ?? 0; finalBlowAttackerAllyId = finalBlowAttacker?.alliance_id ?? 0; isNPCKill = kill.zkb.npc; systemId = kill.solar_system_id; rSystem = await APIHelper.ESIAPI.GetSystemData(reason, systemId); if (rSystem == null) { //ESI fail - check back later return(false); } rVictimCorp = await APIHelper.ESIAPI.GetCorporationData(reason, victimCorpID); rAttackerCorp = finalBlowAttackerCorpId > 0 ? await APIHelper.ESIAPI.GetCorporationData(reason, finalBlowAttackerCorpId) : null; rVictimAlliance = victimAllianceID != 0 ? await APIHelper.ESIAPI.GetAllianceData(reason, victimAllianceID) : null; rAttackerAlliance = finalBlowAttackerAllyId > 0 ? await APIHelper.ESIAPI.GetAllianceData(reason, finalBlowAttackerAllyId) : null; sysName = rSystem.name == rSystem.system_id.ToString() ? "Abyss" : rSystem.name; var rConst = rSystem != null ? await APIHelper.ESIAPI.GetConstellationData(reason, rSystem.constellation_id) : null; var rRegion = rConst != null ? await APIHelper.ESIAPI.GetRegionData(reason, rConst.region_id) : null; rVictimShipType = await APIHelper.ESIAPI.GetTypeId(reason, victimShipID); rAttackerShipType = await APIHelper.ESIAPI.GetTypeId(reason, attackerShipID); rVictimCharacter = await APIHelper.ESIAPI.GetCharacterData(reason, victimCharacterID); rAttackerCharacter = await APIHelper.ESIAPI.GetCharacterData(reason, finalBlowAttacker?.character_id); systemSecurityStatus = Math.Round(rSystem.security_status, 1).ToString("0.0"); dic = new Dictionary <string, string> { { "{shipID}", victimShipID.ToString() }, { "{shipType}", rVictimShipType?.name }, { "{attackerShipID}", attackerShipID.ToString() }, { "{attackerShipType}", rAttackerShipType?.name }, { "{iskValue}", value.ToString("n0") }, { "{iskFittedValue}", kill?.zkb?.fittedValue.ToString("n0") ?? "0" }, { "{systemName}", sysName }, { "{constName}", rConst?.name }, { "{regionName}", rRegion?.name }, { "{systemSec}", systemSecurityStatus }, { "{victimName}", rVictimCharacter?.name }, { "{victimCorpName}", rVictimCorp?.name }, { "{victimCorpTicker}", rVictimCorp?.ticker }, { "{victimAllyName}", rVictimAlliance?.name }, { "{victimAllyTicker}", rVictimAlliance == null ? null : $"<{rVictimAlliance.ticker}>" }, { "{victimAllyOrCorpName}", rVictimAlliance?.name ?? rVictimCorp?.name }, { "{victimAllyOrCorpTicker}", rVictimAlliance?.ticker ?? rVictimCorp?.ticker }, { "{attackerName}", rAttackerCharacter?.name }, { "{attackerCorpName}", rAttackerCorp?.name }, { "{attackerCorpTicker}", rAttackerCorp?.ticker }, { "{attackerAllyTicker}", rAttackerAlliance == null ? null : $"<{rAttackerAlliance.ticker}>" }, { "{attackerAllyName}", rAttackerAlliance?.name }, { "{attackerAllyOrCorpName}", rAttackerAlliance?.name ?? rAttackerCorp?.name }, { "{attackerAllyOrCorpTicker}", rAttackerAlliance?.ticker ?? rAttackerCorp?.ticker }, { "{attackersCount}", attackers.Length.ToString() }, { "{kmId}", killmailID.ToString() }, { "{timestamp}", killTime }, { "{isLoss}", "false" }, { "{isNpcKill}", isNPCKill.ToString() ?? "false" }, { "{isSoloKill}", kill?.zkb?.solo.ToString() ?? "false" }, { "{isAwoxKill}", kill?.zkb?.awox.ToString() ?? "false" }, }; return(true); } catch (Exception ex) { killmailID = 0; await LogHelper.LogEx("refresh ex", ex, LogCat.KillFeed); return(false); } }