public RocketPermissionsGroup GetGroup(string groupId)
        {
            PointBlankGroup group = PointBlankGroup.Find(groupId);

            if (group == null)
            {
                return(null);
            }
            return(new RocketPermissionsGroup(group));
        }
        public RocketPermissionsProviderResult RemovePlayerFromGroup(string groupId, IRocketPlayer player)
        {
            PointBlankGroup group = PointBlankGroup.Find(groupId);

            if (group == null)
            {
                return(RocketPermissionsProviderResult.GroupNotFound);
            }
            ((UnturnedPlayer)player)._Player.RemoveGroup(group);
            return(RocketPermissionsProviderResult.Success);
        }
Ejemplo n.º 3
0
        // Virtual
        /// <summary>
        /// Add the player to a group
        /// </summary>
        /// <param name="group">The group to add the player to</param>
        public virtual void AddGroup(PointBlankGroup group)
        {
            if (Groups.Contains(group))
            {
                return;
            }

            _Groups.Add(group);
            if (Loaded)
            {
                PointBlankPlayerEvents.RunGroupAdd(this, group);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Remove the player from a group
        /// </summary>
        /// <param name="group">The group to remove the player from</param>
        public virtual void RemoveGroup(PointBlankGroup group)
        {
            if (!Groups.Contains(group))
            {
                return;
            }

            _Groups.Remove(group);
            if (Loaded)
            {
                PointBlankPlayerEvents.RunGroupRemove(this, group);
            }
        }
        public RocketPermissionsGroup(PointBlankGroup group)
        {
            Id          = group.ID;
            DisplayName = group.Name;
            Members     = new List <string>();
            Permissions = new List <Permission>();
            ParentGroup = group.Inherits[0].ID;
            Color       = group.Color.ToString();
            Priority    = 100;

            foreach (PointBlankPermission permission in group.Permissions)
            {
                Permissions.Add(new Permission(permission.Permission, (uint)permission.Cooldown));
            }
        }
Ejemplo n.º 6
0
        internal void FirstGroups()
        {
            // Create the groups
            PointBlankGroup guest = new PointBlankGroup("Guest", "Guest Group", true, -1, Color.clear);
            PointBlankGroup admin = new PointBlankGroup("Admin", "Admin Group", false, 0, Color.blue);

            // Configure guest group
            guest.AddPermission("unturned.commands.nonadmin.*");
            guest.AddPrefix("Guest");
            guest.AddSuffix("Guest");
            GM.AddGroup(guest);

            // Configure admin group
            admin.AddPermission("unturned.commands.admin.*");
            admin.AddPrefix("Admin");
            admin.AddSuffix("Admin");
            admin.AddInherit(guest);
            GM.AddGroup(admin);

            // Save the groups
            SaveGroups();
        }
Ejemplo n.º 7
0
        internal void LoadGroups()
        {
            GM.Loaded = false;
            foreach (JProperty obj in GroupConfig.Document.Properties())
            {
                if (GM.Groups.Count(a => a.ID == obj.Name) > 0)
                {
                    continue;
                }

                PointBlankGroup g = new PointBlankGroup(obj.Name);

                GM.AddGroup(g);
            }

            foreach (PointBlankGroup g in GM.Groups)
            {
                JObject obj = GroupConfig.Document[g.ID] as JObject;

                while (g.Inherits.Length > 0)
                {
                    g.RemoveInherit(g.Inherits[0]);
                }
                while (g.Permissions.Length > 0)
                {
                    g.RemovePermission(g.Permissions[0]);
                }
                while (g.Prefixes.Length > 0)
                {
                    g.RemovePrefix(g.Prefixes[0]);
                }
                while (g.Suffixes.Length > 0)
                {
                    g.RemoveSuffix(g.Suffixes[0]);
                }
                g.Name     = (string)obj["Name"];
                g.Default  = (bool)obj["Default"];
                g.Cooldown = (int)obj["Cooldown"];
                if (!ColorUtility.TryParseHtmlString((string)obj["Color"], out Color color))
                {
                    color = Color.clear;
                }
                g.Color = color;
                if (obj["Inherits"] is JArray)
                {
                    foreach (JToken token in (JArray)obj["Inherits"])
                    {
                        PointBlankGroup i = GM.Groups.FirstOrDefault(a => a.ID == (string)token);

                        if (i == null || g.Inherits.Contains(i) || g == i)
                        {
                            continue;
                        }
                        g.AddInherit(i);
                    }
                }
                else
                {
                    PointBlankGroup i = GM.Groups.FirstOrDefault(a => a.ID == (string)obj["Inherits"]);

                    if (i == null || g.Inherits.Contains(i) || g == i)
                    {
                        continue;
                    }
                    g.AddInherit(i);
                }
                if (obj["Permissions"] is JArray)
                {
                    foreach (JToken token in (JArray)obj["Permissions"])
                    {
                        if (g.Permissions.Contains((string)token))
                        {
                            continue;
                        }

                        g.AddPermission((string)token);
                    }
                }
                else
                {
                    if (g.Permissions.Contains((string)obj["Permissions"]))
                    {
                        continue;
                    }

                    g.AddPermission((string)obj["Permissions"]);
                }
                if (obj["Prefixes"] is JArray)
                {
                    foreach (JToken token in (JArray)obj["Prefixes"])
                    {
                        if (g.Prefixes.Contains((string)token))
                        {
                            continue;
                        }

                        g.AddPrefix((string)token);
                    }
                }
                else
                {
                    if (g.Prefixes.Contains((string)obj["Prefixes"]))
                    {
                        continue;
                    }

                    g.AddPrefix((string)obj["Prefixes"]);
                }
                if (obj["Suffixes"] is JArray)
                {
                    foreach (JToken token in (JArray)obj["Suffixes"])
                    {
                        if (g.Suffixes.Contains((string)token))
                        {
                            continue;
                        }

                        g.AddSuffix((string)token);
                    }
                }
                else
                {
                    if (g.Suffixes.Contains((string)obj["Suffixes"]))
                    {
                        continue;
                    }

                    g.AddSuffix((string)obj["Suffixes"]);
                }
            }
            GM.Loaded = true;
        }
 internal static void RunGroupRemove(PointBlankPlayer player, PointBlankGroup group) => OnGroupRemoved?.Invoke(player, group);