void Handle(ref TMsg msg, ulong sender, TimeSpan timestamp) { if (Sync.ServerId == sender) { Layer.LastMessageFromServer = DateTime.UtcNow; } MyNetworkClient player; bool playerFound = Layer.Clients.TryGetClient(sender, out player); bool permissionsOk = MySyncLayer.CheckReceivePermissions(sender, Permission); if (!playerFound && msg is ConnectedClientDataMsg) { var m = (ConnectedClientDataMsg)(object)msg; player = Layer.Clients.AddClient(sender); playerFound = true; } //TODO: This should be ok if client loads the scene, buffers another player messages //and during that time is that player kicked //Debug.Assert(playerFound, "Player not found"); if (playerFound && permissionsOk) { OnHandle(ref msg, player, timestamp); } }
void Handle(ref TMsg msg, ulong sender, MyTimeSpan timestamp) { MyNetworkClient player; bool playerFound = Layer.Clients.TryGetClient(sender, out player); bool permissionsOk = MySyncLayer.CheckReceivePermissions(sender, Permission); /* if (!playerFound && msg is ConnectedClientDataMsg) * { * var m = (ConnectedClientDataMsg)(object)msg; * player = Layer.Clients.AddClient(sender); * playerFound = true; * }*/ //TODO: This should be ok if client loads the scene, buffers another player messages //and during that time is that player kicked //Debug.Assert(playerFound, "Player not found"); if (playerFound && permissionsOk) { OnHandle(ref msg, player, timestamp); } }