public bool Initialize <T>() where T : IAccountStorage, new() { storage = new T(); if (storage.Initialize()) { NetworkServer.RegisterHandler((short)CustomMessageTypes.LoginRequest, x => { StartCoroutine(HandleLoginRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.LogoutRequest, x => StartCoroutine(HandleLogoutRequestLogout(x.conn))); NetworkServer.RegisterHandler((short)CustomMessageTypes.RegisterAccountRequest, x => { StartCoroutine(HandleRegisterAccountRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.GetFriendslistRequest, x => { StartCoroutine(HandleGetFriendsListRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.InviteFriendRequest, x => { StartCoroutine(HandleInviteFriendRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.GetInvitationsRequest, x => { StartCoroutine(HandleGetInvitationsRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.AcceptInvitationRequest, x => { StartCoroutine(HandleAcceptInvitationRequest(x)); }); NetworkServer.RegisterHandler((short)CustomMessageTypes.DenyInvitationRequest, x => { StartCoroutine(HandleDenyInvitationRequest(x)); }); return(true); } return(false); }