public override void Handle(SpawnPlayerMessage message) { if (_client.LocalPlayerId == -1) { // Client snaps to server's tick + some offset which will be adjusted later by clock sync. _loop.TickIndex = message.TickIndex + 5; _client.LocalPlayerId = message.playerId; _client.IsConnected = true; _client.SetServerEndpoint(message.Sender); _playerRegistry.RegisterPlayer(_spawner.SpawnControlledPlayer(message.team), message.playerId); _events.LocalPlayerSpawned?.Invoke(); } }