diff --git a/Facepunch.Steamworks/SteamMatchmaking.cs b/Facepunch.Steamworks/SteamMatchmaking.cs index e93bc18..5e2b0ae 100644 --- a/Facepunch.Steamworks/SteamMatchmaking.cs +++ b/Facepunch.Steamworks/SteamMatchmaking.cs @@ -12,6 +12,14 @@ namespace Steamworks /// public static class SteamMatchmaking { + internal const int k_nMaxLobbyKeyLength = 255; + + /// + /// Maximum number of characters a lobby metadata key can be + /// + public static int MaxLobbyKeyLength { get { return k_nMaxLobbyKeyLength; } } + + static ISteamMatchmaking _internal; internal static ISteamMatchmaking Internal diff --git a/Facepunch.Steamworks/Structs/LobbyQuery.cs b/Facepunch.Steamworks/Structs/LobbyQuery.cs index adcf2d4..fec23cb 100644 --- a/Facepunch.Steamworks/Structs/LobbyQuery.cs +++ b/Facepunch.Steamworks/Structs/LobbyQuery.cs @@ -51,21 +51,14 @@ namespace Steamworks.Data /// public LobbyQuery FilterStringKeyValue( string nKey, string nValue ) { - stringFilter = new MatchMakingKeyValuePair_t + if ( !string.IsNullOrEmpty(nKey) && nKey.Length <= SteamMatchmaking.MaxLobbyKeyLength ) { - Key = nKey, - Value = nValue - }; - - return this; - } - - /// - /// Filter by specified key/value pair; MatchMakingKeyValuePair_t parameter - /// - public LobbyQuery FilterStringKeyValue( MatchMakingKeyValuePair_t kv ) - { - stringFilter = kv; + stringFilter = new MatchMakingKeyValuePair_t + { + Key = nKey, + Value = nValue + }; + } return this; } @@ -99,6 +92,7 @@ namespace Steamworks.Data #endregion + void ApplyFilters() { if ( distance.HasValue )