public override void HandleBytes(byte[] bytes, int offset)
        {
            pProgressionDataRequest requestData = new pProgressionDataRequest();
            int    size = Marshal.SizeOf(requestData);
            IntPtr ptr  = Marshal.AllocHGlobal(size);

            Marshal.Copy(bytes, offset, ptr, size);
            requestData = (pProgressionDataRequest)Marshal.PtrToStructure(ptr, requestData.GetType());
            Debug.LogWarning("Received progression request (ACK: " + requestData.ack + ")");
            OnReceive(requestData);
            Marshal.FreeHGlobal(ptr);
        }
 public void OnReceive(pProgressionDataRequest requestData)
 {
     if (requestData.from.TryGet(out Player.PlayerAgent p) && ExtendedPlayerAgent.TryGetOrCreate(p, out ExtendedPlayerAgent player))
     {
         player.ProgressionSynced = requestData.ack;
         if (NET.IsMaster && !player.ProgressionSynced)
         {
             if (ExtendedPlayerAgent.TryGet(NET.SNetMaster.PlayerAgent.TryCast <PlayerAgent>(), out ExtendedPlayerAgent master))
             {
                 master.ProgressionReplicator.SendProgressionData(player);
             }
             else
             {
                 Debug.LogError("COULD NOT FIND THE MASTA!!!!");
             }
         }
     }