diff --git a/ArchiSteamFarm/lib/SteamKit2.dll b/ArchiSteamFarm/lib/SteamKit2.dll index 637008e63..f71c78712 100644 Binary files a/ArchiSteamFarm/lib/SteamKit2.dll and b/ArchiSteamFarm/lib/SteamKit2.dll differ diff --git a/ArchiSteamFarm/lib/SteamKit2.xml b/ArchiSteamFarm/lib/SteamKit2.xml index 721f77275..0f6df83cd 100644 --- a/ArchiSteamFarm/lib/SteamKit2.xml +++ b/ArchiSteamFarm/lib/SteamKit2.xml @@ -771,6 +771,20 @@ The local IP. + + + Gets the public IP address of this client. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The SteamID. + + + + Gets the country code of our public IP address according to Steam. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The SteamID. + Gets the universe of this client. @@ -4287,6 +4301,535 @@ The packet message that contains the data. + + + This handler is used for creating, joining and obtaining lobby information. + + + + + This callback is fired in response to . + + + + + ID of the app the lobbies belongs to. + + + + + The result of the request. + + + + + The list of lobbies matching the criteria specified with . + + + + + This callback is fired in response to . + + + + + ID of the app the created lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the created lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The joined , when equals + , otherwise null + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to , as well as whenever Steam sends us updated lobby data. + + + + + ID of the app the updated lobby belongs to. + + + + + The lobby that was updated. + + + + + This callback is fired whenever Steam informs us a user has joined a lobby. + + + + + ID of the app the lobby belongs to. + + + + + The SteamID of the lobby that a member joined. + + + + + The lobby member that joined. + + + + + This callback is fired whenever Steam informs us a user has left a lobby. + + + + + ID of the app the lobby belongs to. + + + + + The SteamID of the lobby that a member left. + + + + + The lobby member that left. + + + + + Represents a Steam lobby. + + + + + The lobby filter base class. + + + + + The type of filter. + + + + + The metadata key this filter pertains to. Under certain circumstances e.g. a distance + filter, this will be an empty string. + + + + + The comparison method used by this filter. + + + + + Base constructor for all filter sub-classes. + + The type of filter. + The metadata key this filter pertains to. + The comparison method used by this filter. + + + + Serializes the filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies geographically (based on IP according to Steam's IP database). + + + + + Steam distance filter value. + + + + + Initializes a new instance of the class. + + Steam distance filter value. + + + + Serializes the distance filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies with a metadata value closest to the specified value. Multiple + near filters can be specified, with former filters taking precedence over latter filters. + + + + + Integer value that lobbies' metadata value should be close to. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + Integer value to compare against. + + + + Serializes the slots available filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by comparing an integer against a value in each lobby's metadata. + + + + + Integer value to compare against. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + The comparison method used by this filter. + Integer value to compare against. + + + + Serializes the numerical filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by minimum number of slots available. + + + + + Minumum number of slots available in the lobby. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + Integer value to compare against. + + + + Serializes the slots available filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by comparing a string against a value in each lobby's metadata. + + + + + String value to compare against. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + The comparison method used by this filter. + String value to compare against. + + + + Serializes the string filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Represents a Steam user within a lobby. + + + + + SteamID of the lobby member. + + + + + Steam persona of the lobby member. + + + + + Metadata attached to the lobby member. + + + + + Checks to see if this lobby member is equal to another. Only the SteamID of the lobby member is taken into account. + + + true, if obj is with a matching SteamID. Otherwise, false. + + + + Hash code of the lobby member. Only the SteamID of the lobby member is taken into account. + + The hash code of this lobby member. + + + + SteamID of the lobby. + + + + + The type of the lobby. + + + + + The lobby's flags. + + + + + The SteamID of the lobby's owner. Please keep in mind that Steam does not provide lobby + owner details for lobbies returned in a lobby list. As such, lobbies that have been + obtained/updated as a result of calling + may have a null (or non-null but state) owner. + + + + + The metadata of the lobby; string key-value pairs. + + + + + The maximum number of members that can occupy the lobby. + + + + + The number of members that are currently occupying the lobby. + + + + + A list of lobby members. This will only be populated for the user's current lobby. + + + + + The distance of the lobby. + + + + + The weight of the lobby. + + + + + Sends a request to create a new lobby. + + ID of the app the lobby will belong to. + The new lobby type. + The new maximum number of members that may occupy the lobby. + The new lobby flags. Defaults to 0. + The new metadata for the lobby. Defaults to null (treated as an empty dictionary). + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to update a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be updated. + The new lobby type. + The new maximum number of members that may occupy the lobby. + The new lobby flags. Defaults to 0. + The new metadata for the lobby. Defaults to null (treated as an empty dictionary). + An . + + + + Sends a request to update the current user's lobby metadata. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be updated. + The new metadata for the lobby. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to update the owner of a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should have its owner updated. + The SteamID of the new owner. + An . + + + + Sends a request to obtains a list of lobbies matching the specified criteria. + + The ID of app for which we're requesting a list of lobbies. + An optional list of filters. + An optional maximum number of lobbies that will be returned. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to join a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be joined. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to leave a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be left. + An . + + + + Sends a request to obtain a lobby's data. + + The ID of app which we're attempting to obtain lobby data for. + The SteamID of the lobby whose data is being requested. + An . + + + + Sends a lobby invite request. + NOTE: Steam provides no functionality to determine if the user was successfully invited. + + The ID of app which owns the lobby we're inviting a user to. + The SteamID of the lobby we're inviting a user to. + The SteamID of the user we're inviting. + + + + Obtains a , by its SteamID, if the data is cached locally. + This method does not send a network request. + + The ID of app which we're attempting to obtain a lobby for. + The SteamID of the lobby that should be returned. + The corresponding with the specified app and lobby ID, if cached. Otherwise, null. + + + + Sends a matchmaking message for a specific app. + + The matchmaking message to send. + The ID of the app this message pertains to. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + This handler is used for initializing Steam trades with other clients. diff --git a/tools/NetHook2/NetHook2.dll b/tools/NetHook2/NetHook2.dll index 537402791..4fc376af3 100644 Binary files a/tools/NetHook2/NetHook2.dll and b/tools/NetHook2/NetHook2.dll differ diff --git a/tools/NetHookAnalyzer2/NetHookAnalyzer2.exe b/tools/NetHookAnalyzer2/NetHookAnalyzer2.exe index f49568950..93f6dd3d2 100644 Binary files a/tools/NetHookAnalyzer2/NetHookAnalyzer2.exe and b/tools/NetHookAnalyzer2/NetHookAnalyzer2.exe differ diff --git a/tools/NetHookAnalyzer2/SteamKit2.dll b/tools/NetHookAnalyzer2/SteamKit2.dll index c81905597..f73d29e7a 100644 Binary files a/tools/NetHookAnalyzer2/SteamKit2.dll and b/tools/NetHookAnalyzer2/SteamKit2.dll differ diff --git a/tools/NetHookAnalyzer2/SteamKit2.xml b/tools/NetHookAnalyzer2/SteamKit2.xml index f67eec215..0f6df83cd 100644 --- a/tools/NetHookAnalyzer2/SteamKit2.xml +++ b/tools/NetHookAnalyzer2/SteamKit2.xml @@ -771,6 +771,20 @@ The local IP. + + + Gets the public IP address of this client. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The SteamID. + + + + Gets the country code of our public IP address according to Steam. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The SteamID. + Gets the universe of this client. @@ -1845,6 +1859,11 @@ Gets the type of the server. + + + Gets the SourceID this server belongs to. + + Gets the CellID this server belongs to. @@ -1957,6 +1976,8 @@ No Steam CS servers available, or the suggested CellID is unavailable. Check that the associated with this instance is logged onto Steam. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -1964,6 +1985,8 @@ The content server to connect to. csServer was null. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -1975,6 +1998,8 @@ This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. CDN auth token for CDN content server endpoints. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -1983,6 +2008,8 @@ The id of the depot being accessed. The unique identifier of the manifest to be downloaded. A instance that contains information about the files present within a depot. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -1997,6 +2024,24 @@ This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. A instance that contains information about the files present within a depot. + An network error occurred when performing the request. + A network error occurred when performing the request. + + + + Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided. + + The id of the depot being accessed. + The unique identifier of the manifest to be downloaded. + The content server to connect to. + CDN auth token for CDN content server endpoints. + + The depot decryption key for the depot that will be downloaded. + This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. + + A instance that contains information about the files present within a depot. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -2009,11 +2054,13 @@ The id of the depot being accessed. A instance that represents the chunk to download. - This value should come from a manifest downloaded with . + This value should come from a manifest downloaded with . A instance that contains the data for the given chunk. chunk's was null. Thrown if the downloaded data does not match the expected length. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -2026,7 +2073,7 @@ The id of the depot being accessed. A instance that represents the chunk to download. - This value should come from a manifest downloaded with . + This value should come from a manifest downloaded with . A instance that contains the data for the given chunk. CDN hostname. @@ -2037,6 +2084,33 @@ chunk's was null. Thrown if the downloaded data does not match the expected length. + An network error occurred when performing the request. + A network error occurred when performing the request. + + + + Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided. + + + This function will also validate the length of the downloaded chunk with the value of , + if it has been assigned a value. + + The id of the depot being accessed. + + A instance that represents the chunk to download. + This value should come from a manifest downloaded with . + + A instance that contains the data for the given chunk. + The content server to connect to. + CDN auth token for CDN content server endpoints. + + The depot decryption key for the depot that will be downloaded. + This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. + + chunk's was null. + Thrown if the downloaded data does not match the expected length. + An network error occurred when performing the request. + A network error occurred when performing the request. @@ -4227,6 +4301,535 @@ The packet message that contains the data. + + + This handler is used for creating, joining and obtaining lobby information. + + + + + This callback is fired in response to . + + + + + ID of the app the lobbies belongs to. + + + + + The result of the request. + + + + + The list of lobbies matching the criteria specified with . + + + + + This callback is fired in response to . + + + + + ID of the app the created lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the created lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The joined , when equals + , otherwise null + + + + + This callback is fired in response to . + + + + + ID of the app the targeted lobby belongs to. + + + + + The result of the request. + + + + + The SteamID of the targeted Lobby. + + + + + This callback is fired in response to , as well as whenever Steam sends us updated lobby data. + + + + + ID of the app the updated lobby belongs to. + + + + + The lobby that was updated. + + + + + This callback is fired whenever Steam informs us a user has joined a lobby. + + + + + ID of the app the lobby belongs to. + + + + + The SteamID of the lobby that a member joined. + + + + + The lobby member that joined. + + + + + This callback is fired whenever Steam informs us a user has left a lobby. + + + + + ID of the app the lobby belongs to. + + + + + The SteamID of the lobby that a member left. + + + + + The lobby member that left. + + + + + Represents a Steam lobby. + + + + + The lobby filter base class. + + + + + The type of filter. + + + + + The metadata key this filter pertains to. Under certain circumstances e.g. a distance + filter, this will be an empty string. + + + + + The comparison method used by this filter. + + + + + Base constructor for all filter sub-classes. + + The type of filter. + The metadata key this filter pertains to. + The comparison method used by this filter. + + + + Serializes the filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies geographically (based on IP according to Steam's IP database). + + + + + Steam distance filter value. + + + + + Initializes a new instance of the class. + + Steam distance filter value. + + + + Serializes the distance filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies with a metadata value closest to the specified value. Multiple + near filters can be specified, with former filters taking precedence over latter filters. + + + + + Integer value that lobbies' metadata value should be close to. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + Integer value to compare against. + + + + Serializes the slots available filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by comparing an integer against a value in each lobby's metadata. + + + + + Integer value to compare against. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + The comparison method used by this filter. + Integer value to compare against. + + + + Serializes the numerical filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by minimum number of slots available. + + + + + Minumum number of slots available in the lobby. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + Integer value to compare against. + + + + Serializes the slots available filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Can be used to filter lobbies by comparing a string against a value in each lobby's metadata. + + + + + String value to compare against. + + + + + Initializes a new instance of the class. + + The metadata key this filter pertains to. + The comparison method used by this filter. + String value to compare against. + + + + Serializes the string filter into a representation used internally by SteamMatchmaking. + + A protobuf serializable representation of this filter. + + + + Represents a Steam user within a lobby. + + + + + SteamID of the lobby member. + + + + + Steam persona of the lobby member. + + + + + Metadata attached to the lobby member. + + + + + Checks to see if this lobby member is equal to another. Only the SteamID of the lobby member is taken into account. + + + true, if obj is with a matching SteamID. Otherwise, false. + + + + Hash code of the lobby member. Only the SteamID of the lobby member is taken into account. + + The hash code of this lobby member. + + + + SteamID of the lobby. + + + + + The type of the lobby. + + + + + The lobby's flags. + + + + + The SteamID of the lobby's owner. Please keep in mind that Steam does not provide lobby + owner details for lobbies returned in a lobby list. As such, lobbies that have been + obtained/updated as a result of calling + may have a null (or non-null but state) owner. + + + + + The metadata of the lobby; string key-value pairs. + + + + + The maximum number of members that can occupy the lobby. + + + + + The number of members that are currently occupying the lobby. + + + + + A list of lobby members. This will only be populated for the user's current lobby. + + + + + The distance of the lobby. + + + + + The weight of the lobby. + + + + + Sends a request to create a new lobby. + + ID of the app the lobby will belong to. + The new lobby type. + The new maximum number of members that may occupy the lobby. + The new lobby flags. Defaults to 0. + The new metadata for the lobby. Defaults to null (treated as an empty dictionary). + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to update a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be updated. + The new lobby type. + The new maximum number of members that may occupy the lobby. + The new lobby flags. Defaults to 0. + The new metadata for the lobby. Defaults to null (treated as an empty dictionary). + An . + + + + Sends a request to update the current user's lobby metadata. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be updated. + The new metadata for the lobby. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to update the owner of a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should have its owner updated. + The SteamID of the new owner. + An . + + + + Sends a request to obtains a list of lobbies matching the specified criteria. + + The ID of app for which we're requesting a list of lobbies. + An optional list of filters. + An optional maximum number of lobbies that will be returned. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to join a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be joined. + null, if the request could not be submitted i.e. not yet logged in. Otherwise, an . + + + + Sends a request to leave a lobby. + + ID of app the lobby belongs to. + The SteamID of the lobby that should be left. + An . + + + + Sends a request to obtain a lobby's data. + + The ID of app which we're attempting to obtain lobby data for. + The SteamID of the lobby whose data is being requested. + An . + + + + Sends a lobby invite request. + NOTE: Steam provides no functionality to determine if the user was successfully invited. + + The ID of app which owns the lobby we're inviting a user to. + The SteamID of the lobby we're inviting a user to. + The SteamID of the user we're inviting. + + + + Obtains a , by its SteamID, if the data is cached locally. + This method does not send a network request. + + The ID of app which we're attempting to obtain a lobby for. + The SteamID of the lobby that should be returned. + The corresponding with the specified app and lobby ID, if cached. Otherwise, null. + + + + Sends a matchmaking message for a specific app. + + The matchmaking message to send. + The ID of the app this message pertains to. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + This handler is used for initializing Steam trades with other clients. @@ -4787,6 +5390,11 @@ Gets the threshold for disconnects before Steam wants the client to migrate to a new CM. + + + Gets the Steam parental settings. + + This callback is returned when the client is told to log off by the server. @@ -6278,6 +6886,45 @@ The client message to send. + + + Helper class to load servers from the Content Server Directory Service Web API. + + + + + Load a list of servers from the Content Server Directory Service. + + Configuration Object + A with the Result set to an enumerable list of s. + + + + Load a list of servers from the Content Server Directory Service. + + Configuration Object + Cancellation Token + A with the Result set to an enumerable list of s. + + + + Load a list of servers from the Content Server Directory Service. + + Configuration Object + Preferred steam cell id + Cancellation Token + A with the Result set to an enumerable list of s. + + + + Load a list of servers from the Content Server Directory Service. + + Configuration Object + Preferred steam cell id + Max number of servers to return. + Cancellation Token + A with the Result set to an enumerable list of s. + Provides helper extensions to make WebAPI interfaces from existing SteamConfiguration. @@ -6354,7 +7001,7 @@ The timeout value in milliseconds. The default value is 100 seconds. - + Manually calls the specified Web API function with the provided details. @@ -6367,7 +7014,7 @@ A network error occurred when performing the request. An error occured when parsing the response from the WebAPI. - + Manually calls the specified Web API function with the provided details. @@ -6436,7 +7083,7 @@ The timeout value in milliseconds. The default value is 100 seconds. - + Manually calls the specified Web API function with the provided details. @@ -6529,16 +7176,6 @@ Thrown when WebAPI request fails. - - - Represents the status code of the HTTP response. - - - - - Represents the collection of HTTP response headers. - - Initializes a new instance of the class. @@ -8193,6 +8830,28 @@ The category of the message. The message to log. + + + Thrown when a HTTP request fails. + + + + + Represents the status code of the HTTP response. + + + + + Represents the collection of HTTP response headers. + + + + + Initializes a new instance of the class. + + The message that describes the error. + HTTP response message including the status code and data. + Contains various utility functions for dealing with dates.