diff --git a/Facepunch.Steamworks/SteamMatchmaking.cs b/Facepunch.Steamworks/SteamMatchmaking.cs index 8a3e2ec..e93bc18 100644 --- a/Facepunch.Steamworks/SteamMatchmaking.cs +++ b/Facepunch.Steamworks/SteamMatchmaking.cs @@ -37,7 +37,7 @@ namespace Steamworks { LobbyInvite_t.Install( x => OnLobbyInvite?.Invoke( new Friend( x.SteamIDUser ), new Lobby( x.SteamIDLobby ) ) ); - LobbyEnter_t.Install( x => OnLobbyEntered?.Invoke( new Lobby(x.SteamIDLobby ) ) ); + LobbyEnter_t.Install( x => OnLobbyEntered?.Invoke( new Lobby( x.SteamIDLobby ) ) ); LobbyDataUpdate_t.Install( x => { diff --git a/Facepunch.Steamworks/Structs/LobbyQuery.cs b/Facepunch.Steamworks/Structs/LobbyQuery.cs index 36146d1..a765a67 100644 --- a/Facepunch.Steamworks/Structs/LobbyQuery.cs +++ b/Facepunch.Steamworks/Structs/LobbyQuery.cs @@ -43,6 +43,24 @@ namespace Steamworks.Data } #endregion + #region String key/value filter + internal MatchMakingKeyValuePair_t? stringFilter; + + /// + /// Filter by specified key/value pair + /// + public LobbyQuery FilterStringKeyValue( string nKey, string nValue ) + { + stringFilter = new MatchMakingKeyValuePair_t + { + Key = nKey, + Value = nValue + }; + + return this; + } + #endregion + #region Slots Filter internal int? slotsAvailable; @@ -71,7 +89,6 @@ namespace Steamworks.Data #endregion - void ApplyFilters() { if ( distance.HasValue ) @@ -88,6 +105,11 @@ namespace Steamworks.Data { SteamMatchmaking.Internal.AddRequestLobbyListResultCountFilter( maxResults.Value ); } + + if( stringFilter.HasValue ) + { + SteamMatchmaking.Internal.AddRequestLobbyListStringFilter( stringFilter.Value.Key, stringFilter.Value.Value, LobbyComparison.Equal ); + } } ///