diff --git a/rc_lobby_room/src/lobby.rs b/rc_lobby_room/src/lobby.rs index c1ddfea..d3ba202 100644 --- a/rc_lobby_room/src/lobby.rs +++ b/rc_lobby_room/src/lobby.rs @@ -520,7 +520,7 @@ impl QueueHandler { } else { log::debug!("Rejecting join queue for unknown custom game for user {}", public_id); event_emitter.emit(crate::events::enqueue_error::QueueJoinError { - code: oj_rc_core::data::error_codes::LobbyReasonCode::NoSuitableLobbyFound as i16, + code: oj_rc_core::data::error_codes::LobbyReasonCode::GroupFailedChecks as i16, text: "User is not in a custom game".to_owned(), }); } diff --git a/rc_services_room/src/operations/custom_game_session.rs b/rc_services_room/src/operations/custom_game_session.rs index 40d8275..52f8b22 100644 --- a/rc_services_room/src/operations/custom_game_session.rs +++ b/rc_services_room/src/operations/custom_game_session.rs @@ -28,6 +28,19 @@ impl SimpleOperation for CustomGameRetriever { }; if let Some(game) = game_opt { log::debug!("User {} retrieved their custom game session {} info", my_pub_id, game.session_id); + if !is_workaround { + user_info.update_custom_game(oj_rc_core::persist::user::intercom::IntercomLobbyCustomGameDataMessage { + session_id: game.session_id.clone(), + config: game.config_core, + users: game.users.iter() + .filter(|user| !user.is_invited) + .map(|user| oj_rc_core::persist::user::intercom::IntercomLobbyCustomGameUserData { + public_id: user.public_id.clone(), + team: user.team, + }) + .collect() + }).await; + } params.insert(RESPONSE_CODE_PARAM_KEY, Typed::Int(crate::data::custom_games::SessionRetrieveResponse::SessionRetrieved as _)); let pub_ids: Vec = game.users.iter() .map(|member| member.public_id.clone())