diff --git a/src/Stormancer.Plugins/Steam/cpp/Steam.hpp b/src/Stormancer.Plugins/Steam/cpp/Steam.hpp index beb40be5..bbc7fc3d 100644 --- a/src/Stormancer.Plugins/Steam/cpp/Steam.hpp +++ b/src/Stormancer.Plugins/Steam/cpp/Steam.hpp @@ -333,9 +333,9 @@ namespace Stormancer { public: - SteamPartyInvitation(const std::string& senderId, const Party::PartyId& partyId) - : _senderId(senderId) - , _partyId(partyId) + SteamPartyInvitation(const Party::PartyId& partyId, const std::string& senderSteamID = "") + : _partyId(partyId) + , _senderSteamID(senderSteamID) { } @@ -351,7 +351,7 @@ namespace Stormancer std::string getSenderId() override { - return _senderId; + return _senderSteamID; } std::string getSenderPlatformId() override @@ -366,8 +366,8 @@ namespace Stormancer private: - std::string _senderId; Party::PartyId _partyId; + std::string _senderSteamID; }; class SteamPartyProvider; @@ -414,6 +414,26 @@ namespace Stormancer { scheduleRunSteamAPiCallbacks(); } + + auto connectLobbyArgument = steamConfig->getConnectLobby(); + + if (!connectLobbyArgument.empty()) + { + if (auto invitationMessenger = _wInvitationMessenger.lock()) + { + _logger->log(LogLevel::Trace, "Steam", "Process launch argument +connect_lobby", connectLobbyArgument); + + SteamIDLobby steamIDLobby = std::stoull(connectLobbyArgument); + + Party::PartyId partyId; + partyId.id = std::to_string(steamIDLobby); + partyId.type = PARTY_TYPE_STEAMIDLOBBY; + partyId.platform = platformName; + + auto steamPartyInvitation = std::make_shared(partyId); + invitationMessenger->notifyInvitationReceived(steamPartyInvitation); + } + } } auto usersApi = _wUsersApi.lock(); @@ -1311,9 +1331,9 @@ namespace Stormancer SteamID senderId = callback->m_steamIDFriend.ConvertToUint64(); Party::PartyId partyId; - partyId.platform = platformName; - partyId.type = PARTY_TYPE_STEAMIDLOBBY; partyId.id = std::to_string(steamIDLobby); + partyId.type = PARTY_TYPE_STEAMIDLOBBY; + partyId.platform = platformName; auto invitationMessenger = _wInvitationMessenger.lock(); if (!invitationMessenger) @@ -1322,7 +1342,7 @@ namespace Stormancer return; } - auto steamPartyInvitation = std::make_shared(std::to_string(senderId), partyId); + auto steamPartyInvitation = std::make_shared(partyId, std::to_string(senderId)); invitationMessenger->notifyInvitationReceived(steamPartyInvitation); }