diff --git a/dll/steam_friends.h b/dll/steam_friends.h index 5c5e8c7..10cb96d 100644 --- a/dll/steam_friends.h +++ b/dll/steam_friends.h @@ -1073,18 +1073,27 @@ void Callback(Common_Message *msg) if (msg->has_friend_messages()) { if (msg->friend_messages().type() == Friend_Messages::LOBBY_INVITE) { PRINT_DEBUG("Steam_Friends Got Lobby Invite\n"); - if (overlay->Ready()) - { - //TODO: the user should accept the invite first but we auto accept it because there's no gui yet - // Then we will handle it ! - overlay->SetLobbyInvite(*find_friend(static_cast(msg->source_id())), msg->friend_messages().lobby_id()); - } - else - { - GameLobbyJoinRequested_t data; - data.m_steamIDLobby = CSteamID((uint64)msg->friend_messages().lobby_id()); - data.m_steamIDFriend = CSteamID((uint64)msg->source_id()); + Friend *f = find_friend(msg->source_id()); + if (f) { + LobbyInvite_t data; + data.m_ulSteamIDUser = msg->source_id(); + data.m_ulSteamIDLobby = msg->friend_messages().lobby_id(); + data.m_ulGameID = f->appid(); callbacks->addCBResult(data.k_iCallback, &data, sizeof(data)); + + if (overlay->Ready()) + { + //TODO: the user should accept the invite first but we auto accept it because there's no gui yet + // Then we will handle it ! + overlay->SetLobbyInvite(*find_friend(static_cast(msg->source_id())), msg->friend_messages().lobby_id()); + } + else + { + GameLobbyJoinRequested_t data; + data.m_steamIDLobby = CSteamID((uint64)msg->friend_messages().lobby_id()); + data.m_steamIDFriend = CSteamID((uint64)msg->source_id()); + callbacks->addCBResult(data.k_iCallback, &data, sizeof(data)); + } } }