private static void ProcessSetGroupPermissionsRequest(ref BinaryReader reader, int playerNumber) { if (Network.NetworkMode == NetworkMode.Server) { if (!Network.Players[playerNumber].Group.IsAdmin) { return; } int id = reader.ReadInt32(); Group group = Network.GetGroupByID(id); int permissionsLength = reader.ReadInt32(); group.ImportPermissions(reader.ReadBytes(permissionsLength)); DatabaseController.SetGroupPermissions(group); for (int i = 0; i < Network.Players.Length; i++) { //if (Network.Players[i].Group?.ID == group.ID) if (Network.Players[i].Group == group) { SendPlayerPermissions(i); } } GroupChanged?.Invoke(null, EventArgs.Empty); } }
public static List<Group> GetGroups() { List<Group> result = new List<Group>(); foreach (DatabaseGroup dbGroup in database.groups) { Group group = new Group(dbGroup.name); group.ID = dbGroup.ID; group.ImportPermissions(dbGroup.permissions); result.Add(group); } return result; }
private static void ProcessGroupList(ref BinaryReader reader) { if (Network.NetworkMode != NetworkMode.Server) { Network.Groups.Clear(); int numOfGroups = reader.ReadInt32(); for (int i = 0; i < numOfGroups; i++) { string groupName = reader.ReadString(); Group group = new Group(groupName); group.ID = reader.ReadInt32(); int permissionsLength = reader.ReadInt32(); group.ImportPermissions(reader.ReadBytes(permissionsLength)); Network.Groups.Add(group); } if (GroupChanged != null) { GroupChanged(null, EventArgs.Empty); } } }
private static void ProcessGroupPermissions(ref BinaryReader reader) { string groupName = reader.ReadString(); Group group = new Group(groupName); group.ID = reader.ReadInt32(); bool isAdmin = reader.ReadBoolean(); if (isAdmin) { group.ID = -1; group.IsAdmin = true; //group.MakeAdmin(); } int permissionsLength = reader.ReadInt32(); group.ImportPermissions(reader.ReadBytes(permissionsLength)); MyGroup = group; if (MyGroupChanged != null) { MyGroupChanged(null, EventArgs.Empty); } }