protected override void OnAssignSimPlayerToPlayer(PlayerInfo playerInfo, PersistentId simPlayerId)
    {
        base.OnAssignSimPlayerToPlayer(playerInfo, simPlayerId);

        // notify other players
        NetMessageSimPlayerIdAssignement message = new NetMessageSimPlayerIdAssignement();

        message.SimPlayerId = simPlayerId;
        message.PlayerId    = playerInfo.PlayerId;

        _serverSession.SendNetMessage(message, _playerConnections);
    }
    void OnMsg_NetMessageSimPlayerIdAssignement(NetMessageSimPlayerIdAssignement message, INetworkInterfaceConnection source)
    {
        if (SystemReady)
        {
            Log.Info("[PlayerRepertoireClient] OnMsg_NetMessageSimPlayerIdAssignement");
            PlayerInfo playerInfo = GetPlayerInfo(message.PlayerId);
            if (playerInfo == null)
            {
                Log.Error("The server told us to assign a simPlayerId to a player but that player could not be found.");
                return;
            }

            playerInfo.SimPlayerId = message.SimPlayerId;
        }
        else
        {
            Log.Info("[PlayerRepertoireClient] *Deferring* OnMsg_NetMessageSimPlayerIdAssignement");
            _deferredNetMessages.Enqueue(message);
        }
    }