internal void LogOut(string matchId)
        {
            var logOutMessage = NMatchLeaveMessage.Default(matchId);

            _client.Send(
                logOutMessage,
                (bool complete) => Debug.Log("LoggedOut"),
                (INError error) => Debug.Log("Error logging out")
                );
        }
Beispiel #2
0
        public void PresenceUpdateLeaveMatch()
        {
            INError error = null;

            ManualResetEvent evt1 = new ManualResetEvent(false);
            INMatch          m    = null;

            client1.Send(NMatchCreateMessage.Default(), (INMatch match) =>
            {
                m = match;
                client2.Send(NMatchJoinMessage.Default(m.Id), (INResultSet <INMatch> match2) =>
                {
                    evt1.Set();
                }, (INError err) =>
                {
                    error = err;
                    evt1.Set();
                });
            }, (INError err) =>
            {
                error = err;
                evt1.Set();
            });
            evt1.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.IsNotNull(m);

            ManualResetEvent evt2       = new ManualResetEvent(false);
            string           leftUserId = null;

            client1.OnMatchPresence = (INMatchPresence presence) =>
            {
                leftUserId = presence.Leave[0].UserId;
                evt2.Set();
            };
            client2.Send(NMatchLeaveMessage.Default(m.Id), (bool complete) =>
            {
                // No action.
            }, (INError err) =>
            {
                error = err;
                evt2.Set();
            });
            evt2.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.AreEqual(userId2, leftUserId);
        }
Beispiel #3
0
    public void QuitMatch()
    {
        Debug.LogWarning("Quitting Match");
        ManualResetEvent quitEvent = new ManualResetEvent(false);

        client = NakamaData.Singleton.Client;
        client.Send(NMatchLeaveMessage.Default(matchID), (bool complete) =>
        {
            Debug.LogWarning("Successfully Quit Match");
        }, (INError err) =>
        {
            Debug.LogWarning("Could not quit match. Error: " + err);
            quitEvent.Set();
        });
        quitEvent.WaitOne(1000, false);
        SendMatchInfoToMatchRoom("remove", 0);
        UnRegisterOnMatchData();
        SendMessages.Singleton.LeaveRoom();
        SendMessages.Singleton.JoinRoom("default-room");
        GameManager.Singleton.QuitCurrentGameMatch(NakamaData.Singleton.ClientUserName + " left the match");
    }
Beispiel #4
0
        public void CreateAndLeaveMatch()
        {
            ManualResetEvent evt   = new ManualResetEvent(false);
            INError          error = null;

            client1.Send(NMatchCreateMessage.Default(), (INMatch match) =>
            {
                client1.Send(NMatchLeaveMessage.Default(match.Id), (bool complete) =>
                {
                    evt.Set();
                }, (INError err) =>
                {
                    error = err;
                    evt.Set();
                });
            }, (INError err) =>
            {
                error = err;
                evt.Set();
            });

            evt.WaitOne(5000, false);
            Assert.IsNull(error);
        }