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); }
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; } }); }