public static void InsertDiscord(ulong steamID, string discordID, string discordName, Dictionary <ulong, string> RoleData) { if (steamID == 0) { Log.Info($"Cannont Insert Discord, SteamId is 0"); return; } Log.Info($"DiscordID for {steamID} received from SEDB!... Inserting into player account ({discordID})"); var AccModule = new PlayerAccountModule(); var account = AccModule.GetAccount(steamID); account.DiscordData.DiscordID = ulong.Parse(discordID); account.DiscordData.DiscordName = discordName; foreach (var role in RoleData) { if (account.DiscordData.DiscordID == ulong.Parse(discordID)) { account.DiscordData.DiscordName = discordName; if (!account.DiscordData.Roles.ContainsKey(role.Key)) { account.DiscordData.Roles.Add(role.Key, role.Value); } } } AccModule.UpdatePlayerAccount(account); }
public bool RankHasPermission(string rank, string cmd, ulong forSteamID) { Dictionary <string, List <string> > InheritedPerms = new Dictionary <string, List <string> >(); RankData data = GetRankData(rank); PlayerAccountModule.PlayerAccountData Account = PlayerAccountModule.GetAccount(forSteamID); if (data == null) { Log.Error($"GetRankData({rank}) returned null."); return(false); } bool hasPermission = false; /* * If there ranks in the Inherit list, * check their permissions first. */ if (data.Inherits.Count != 0) { InheritedPerms = GetInheritPermList(forSteamID); if (InheritedPerms["Allowed"].Contains("*") && !InheritedPerms["Disallowed"].Contains(cmd)) { hasPermission = true; } else if (InheritedPerms["Allowed"].Contains(cmd)) { hasPermission = true; } else if (InheritedPerms["Disallowed"].Contains("*") && !InheritedPerms["Allowed"].Contains(cmd)) { hasPermission = false; } else if ((InheritedPerms["Disallowed"].Contains(cmd))) { hasPermission = false; } if (hasPermission) { return(hasPermission); } } /* * Check the players main rank * permissions */ if (data.Permissions.Allowed.Count == 0 && data.Permissions.Disallowed.Count == 0) { return(hasPermission); } if (data.Permissions.Allowed.Contains("*") && !data.Permissions.Disallowed.Contains(cmd)) { hasPermission = true; } else if (data.Permissions.Allowed.Contains(cmd)) { hasPermission = true; } else if (data.Permissions.Disallowed.Contains("*") && !data.Permissions.Allowed.Contains(cmd)) { hasPermission = false; } else if (data.Permissions.Disallowed.Contains(cmd)) { hasPermission = false; } if (hasPermission) { return(hasPermission); } /* * Check the player specific permissions. */ if (Account.Permissions.Allowed.Count == 0 && Account.Permissions.Disallowed.Count == 0) { return(hasPermission); } if (Account.Permissions.Allowed.Contains("*") && !Account.Permissions.Disallowed.Contains(cmd)) { hasPermission = true; } else if (Account.Permissions.Allowed.Contains(cmd)) { hasPermission = true; } else if (Account.Permissions.Disallowed.Contains("*") && !Account.Permissions.Allowed.Contains(cmd)) { hasPermission = false; } else if (Account.Permissions.Disallowed.Contains(cmd)) { hasPermission = false; } //return result return(hasPermission); }