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); }
// 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); } }
/// <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)); } }
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(); }
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);