diff --git a/Facepunch.Steamworks/SteamClient.cs b/Facepunch.Steamworks/SteamClient.cs
index a19dc59..5a1f066 100644
--- a/Facepunch.Steamworks/SteamClient.cs
+++ b/Facepunch.Steamworks/SteamClient.cs
@@ -170,11 +170,6 @@ namespace Steamworks
///
public static AppId AppId { get; internal set; }
- ///
- /// Check if this SteamClient owns the specified lobby
- ///
- public static bool OwnsLobby( Lobby k ) => k.Owner.Id == SteamId;
-
///
/// Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't
/// this returns true then it starts the Steam client if required and launches your game again through it,
diff --git a/Facepunch.Steamworks/Structs/Friend.cs b/Facepunch.Steamworks/Structs/Friend.cs
index bf717a5..5a3da5e 100644
--- a/Facepunch.Steamworks/Structs/Friend.cs
+++ b/Facepunch.Steamworks/Structs/Friend.cs
@@ -71,11 +71,6 @@ namespace Steamworks
///
public bool IsSnoozing => State == FriendState.Snooze;
- ///
- /// Check if this Friend owns the specified lobby
- ///
- public bool OwnsLobby( Lobby k ) => k.Owner.Id == this.Id;
-
public Relationship Relationship => SteamFriends.Internal.GetFriendRelationship( Id );
diff --git a/Facepunch.Steamworks/Structs/Lobby.cs b/Facepunch.Steamworks/Structs/Lobby.cs
index 46a1bcd..e782690 100644
--- a/Facepunch.Steamworks/Structs/Lobby.cs
+++ b/Facepunch.Steamworks/Structs/Lobby.cs
@@ -210,5 +210,9 @@ namespace Steamworks.Data
set => SteamMatchmaking.Internal.SetLobbyOwner( Id, value.Id );
}
+ ///
+ /// Check if the specified SteamId owns the lobby
+ ///
+ public bool IsOwnedBy( SteamId k ) => Owner.Id == k;
}
}
\ No newline at end of file
diff --git a/Facepunch.Steamworks/Structs/LobbyQuery.cs b/Facepunch.Steamworks/Structs/LobbyQuery.cs
index e7f80e6..8ee168d 100644
--- a/Facepunch.Steamworks/Structs/LobbyQuery.cs
+++ b/Facepunch.Steamworks/Structs/LobbyQuery.cs
@@ -64,7 +64,7 @@ namespace Steamworks.Data
#endregion
#region Numerical filters
- internal Dictionary, LobbyComparison> numericalFilters;
+ internal List numericalFilters;
///
/// Numerical filter where value is less than the value provided
@@ -114,9 +114,9 @@ namespace Steamworks.Data
throw new System.ArgumentException( $"Key length is longer than {SteamMatchmaking.MaxLobbyKeyLength}", nameof( key ) );
if ( numericalFilters == null )
- numericalFilters = new Dictionary, LobbyComparison>();
+ numericalFilters = new List();
- numericalFilters.Add( new KeyValuePair( key, value ), compare );
+ numericalFilters.Add( new NumericalFilter( key, value, compare ) );
}
#endregion
@@ -201,7 +201,7 @@ namespace Steamworks.Data
{
foreach ( var n in numericalFilters )
{
- SteamMatchmaking.Internal.AddRequestLobbyListNumericalFilter( n.Key.Key, n.Key.Value, n.Value );
+ SteamMatchmaking.Internal.AddRequestLobbyListNumericalFilter( n.Key, n.Value, n.Comparer );
}
}
diff --git a/Facepunch.Steamworks/Structs/NumericalFilter.cs b/Facepunch.Steamworks/Structs/NumericalFilter.cs
new file mode 100644
index 0000000..519419f
--- /dev/null
+++ b/Facepunch.Steamworks/Structs/NumericalFilter.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Steamworks.Data
+{
+ struct NumericalFilter
+ {
+ public string Key { get; internal set; }
+ public int Value { get; internal set; }
+ public LobbyComparison Comparer { get; internal set; }
+
+ internal NumericalFilter ( string k, int v, LobbyComparison c )
+ {
+ Key = k;
+ Value = v;
+ Comparer = c;
+ }
+ }
+}