public static List <Permission> GetPermissions(this IRocketPermissionsProvider rocketPermissionProvider, IRocketPlayer player, string permission)
 {
     return(rocketPermissionProvider.GetPermissions(player, new List <string>()
     {
         permission
     }));
 }
        public static List <Permission> GetPermissions(this IRocketPermissionsProvider rocketPermissionProvider, IRocketPlayer player, IRocketCommand command)
        {
            List <string> commandPermissions = command.Permissions;

            commandPermissions.Add(command.Name);
            commandPermissions.AddRange(command.Aliases);
            commandPermissions = commandPermissions.Select(a => a.ToLower()).ToList();
            return(rocketPermissionProvider.GetPermissions(player, commandPermissions));
        }
Esempio n. 3
0
        public bool CheckPlayerPermissionsOverrides(ulong player, string Permission, out bool Allowed)
        {
            if (UnderlyingProvider != null)
            {
                UnturnedPlayer pl = UnturnedPlayer.FromCSteamID(new Steamworks.CSteamID(player));
                if (pl == null)
                {
                    Allowed = false;
                    return(false);
                }
                Dictionary <string, KeyValuePair <int, bool> > Modifiers = new Dictionary <string, KeyValuePair <int, bool> >(StringComparer.InvariantCultureIgnoreCase);
                foreach (var permission in UnderlyingProvider.GetPermissions(pl).Where(x => x.Name.StartsWith("SherbetPermissionsModifier.Mod.", StringComparison.InvariantCultureIgnoreCase)))
                {
                    string        perm = permission.Name.Remove(0, "SherbetPermissionsModifier.Mod.".Length);
                    List <string> prts = perm.Split('.').ToList();
                    if (prts.Count >= 3)
                    {
                        Console.WriteLine("has cn");
                        string Mode      = prts[0];
                        string weightstr = prts[1];
                        prts.RemoveAt(0);
                        prts.RemoveAt(0);
                        string permval = string.Join(".", prts);
                        if (!string.Equals(permval, Permission, StringComparison.InvariantCultureIgnoreCase))
                        {
                            continue;
                        }

                        bool all   = false;
                        bool valid = false;
                        if (string.Equals(Mode, "Deny", StringComparison.InvariantCultureIgnoreCase))
                        {
                            valid = true;
                            all   = false;
                        }
                        else if (string.Equals(Mode, "Grant", StringComparison.InvariantCultureIgnoreCase))
                        {
                            valid = true;
                            all   = true;
                        }
                        if (int.TryParse(weightstr, out int weight) && valid)
                        {
                            if (Modifiers.ContainsKey(permval))
                            {
                                if (Modifiers[permval].Key < weight)
                                {
                                    Modifiers[permval] = new KeyValuePair <int, bool>(weight, all);
                                }
                            }
                            else
                            {
                                Modifiers.Add(permval, new KeyValuePair <int, bool>(weight, all));
                            }
                        }
                    }
                }

                if (Modifiers.ContainsKey(Permission))
                {
                    Allowed = Modifiers[Permission].Value;
                    return(true);
                }
                else
                {
                    Allowed = false;
                    return(false);
                }
            }
            else
            {
                Allowed = false;
                return(false);
            }
        }
Esempio n. 4
0
 public List <Rocket.API.Serialisation.Permission> GetPermissions(IRocketPlayer player)
 {
     return(_defaultProvider.GetPermissions(player));
 }
 public List <Rocket.API.Serialisation.Permission> GetPermissions(IRocketPlayer player)
 {
     return(_defaultProvider.GetPermissions(player)
            .Where(p => !p.Name.StartsWith("!"))
            .ToList());
 }
 public List <Permission> GetPermissions(IRocketPlayer player) => _basePermissionProvider.GetPermissions(player);
 public List <Permission> GetPermissions(IRocketPlayer player)
 {
     return(Underlying.GetPermissions(player));
 }