示例#1
0
        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;
		}
示例#3
0
 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);
         }
     }
 }
示例#4
0
        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);
            }
        }