Example #1
0
        private void OnReceiveSessionJoinRequest(SharedSessionJoinRequest request, NebulaUser user)
        {
            SharedSessionRoom         room     = GetRoom(request.Session.Id);
            SharedSessionJoinResponse response = new SharedSessionJoinResponse();

            if (room == null)
            {
                response.ResponseCode = 10;
            }
            else
            {
                if (room.IsUserPresent(user))
                {
                    response.ResponseCode = 11;
                }
                else if (room.PasswordProtected && !room.VerifyPassword(request.Password))
                {
                    response.ResponseCode = 12;
                }
                else if (room.IsFull())
                {
                    response.ResponseCode = 13;
                }
                else
                {
                    room.AddUser(user);
                    response.ResponseCode = 0;
                    response.Session      = room.AsSessionInfo();
                    response.Users        = room.AsUsersArray();
                }
            }

            Server.SendPacket(response, user.Peer);
        }
Example #2
0
        private void OnReceiveSharedSessionJoinResponse(SharedSessionJoinResponse response, NebulaNetClient net)
        {
            NebulaClient.BeginInvoke(async() =>
            {
                switch (response.ResponseCode)
                {
                case 0:
                    SetSession(response.Session, response.Users);
                    break;

                case 10:
                    await NebulaMessageBox.ShowOk("SharedSessionCantJoin", "Session does not exists");
                    break;

                case 11:
                    break;

                case 12:
                    await NebulaMessageBox.ShowOk("SharedSessionCantJoin", "SharedSessionWrongPassword");
                    break;
                }
            });
        }