diff --git a/ArchiSteamFarm.CustomPlugins.ExamplePlugin/ArchiSteamFarm.CustomPlugins.ExamplePlugin.csproj b/ArchiSteamFarm.CustomPlugins.ExamplePlugin/ArchiSteamFarm.CustomPlugins.ExamplePlugin.csproj
index d2d315e8e..aad285465 100644
--- a/ArchiSteamFarm.CustomPlugins.ExamplePlugin/ArchiSteamFarm.CustomPlugins.ExamplePlugin.csproj
+++ b/ArchiSteamFarm.CustomPlugins.ExamplePlugin/ArchiSteamFarm.CustomPlugins.ExamplePlugin.csproj
@@ -36,6 +36,7 @@
all
+
diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs
index f48516ea3..8aaa53842 100644
--- a/ArchiSteamFarm/ArchiHandler.cs
+++ b/ArchiSteamFarm/ArchiHandler.cs
@@ -43,7 +43,6 @@ namespace ArchiSteamFarm {
private readonly SteamUnifiedMessages.UnifiedService UnifiedClanChatRoomsService;
private readonly SteamUnifiedMessages.UnifiedService UnifiedEconService;
private readonly SteamUnifiedMessages.UnifiedService UnifiedFriendMessagesService;
- private readonly SteamUnifiedMessages.UnifiedService UnifiedParentalService;
private readonly SteamUnifiedMessages.UnifiedService UnifiedPlayerService;
internal DateTime LastPacketReceived { get; private set; }
@@ -58,7 +57,6 @@ namespace ArchiSteamFarm {
UnifiedClanChatRoomsService = steamUnifiedMessages.CreateService();
UnifiedEconService = steamUnifiedMessages.CreateService();
UnifiedFriendMessagesService = steamUnifiedMessages.CreateService();
- UnifiedParentalService = steamUnifiedMessages.CreateService();
UnifiedPlayerService = steamUnifiedMessages.CreateService();
}
@@ -631,90 +629,6 @@ namespace ArchiSteamFarm {
Client.Send(request);
}
- internal async Task<(bool IsSteamParentalEnabled, string SteamParentalCode)?> ValidateSteamParental(string steamParentalCode = null) {
- if (!Client.IsConnected) {
- return null;
- }
-
- CParental_GetParentalSettings_Request request = new CParental_GetParentalSettings_Request { steamid = Client.SteamID };
-
- SteamUnifiedMessages.ServiceMethodResponse response;
-
- try {
- response = await UnifiedParentalService.SendMessage(x => x.GetParentalSettings(request));
- } catch (Exception e) {
- ArchiLogger.LogGenericWarningException(e);
-
- return null;
- }
-
- if (response == null) {
- ArchiLogger.LogNullError(nameof(response));
-
- return null;
- }
-
- if (response.Result != EResult.OK) {
- return null;
- }
-
- CParental_GetParentalSettings_Response body = response.GetDeserializedResponse();
-
- if (body.settings == null) {
- return null;
- }
-
- if (!body.settings.is_enabled) {
- return (false, null);
- }
-
- ArchiCryptoHelper.ESteamParentalAlgorithm steamParentalAlgorithm;
-
- switch (body.settings.passwordhashtype) {
- case 4:
- steamParentalAlgorithm = ArchiCryptoHelper.ESteamParentalAlgorithm.Pbkdf2;
-
- break;
- case 6:
- steamParentalAlgorithm = ArchiCryptoHelper.ESteamParentalAlgorithm.SCrypt;
-
- break;
- default:
- ASF.ArchiLogger.LogGenericError(string.Format(Strings.WarningUnknownValuePleaseReport, nameof(body.settings.passwordhashtype), body.settings.passwordhashtype));
-
- return (false, null);
- }
-
- if ((steamParentalCode != null) && (steamParentalCode.Length == BotConfig.SteamParentalCodeLength)) {
- byte i = 0;
- byte[] password = new byte[steamParentalCode.Length];
-
- foreach (char character in steamParentalCode) {
- if ((character < '0') || (character > '9')) {
- break;
- }
-
- password[i++] = (byte) character;
- }
-
- if (i >= steamParentalCode.Length) {
- byte[] passwordHash = ArchiCryptoHelper.GenerateSteamParentalHash(password, body.settings.salt, (byte) body.settings.passwordhash.Length, steamParentalAlgorithm);
-
- if (passwordHash.SequenceEqual(body.settings.passwordhash)) {
- return (true, steamParentalCode);
- }
- }
- }
-
- ArchiLogger.LogGenericInfo(Strings.BotGeneratingSteamParentalCode);
-
- steamParentalCode = ArchiCryptoHelper.RecoverSteamParentalCode(body.settings.passwordhash, body.settings.salt, steamParentalAlgorithm);
-
- ArchiLogger.LogGenericInfo(Strings.Done);
-
- return (true, steamParentalCode);
- }
-
private void HandleItemAnnouncements(IPacketMsg packetMsg) {
if (packetMsg == null) {
ArchiLogger.LogNullError(nameof(packetMsg));
diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj
index 582eb32e7..2b4df96f5 100644
--- a/ArchiSteamFarm/ArchiSteamFarm.csproj
+++ b/ArchiSteamFarm/ArchiSteamFarm.csproj
@@ -74,13 +74,17 @@
+
-
+
+
+ lib\SteamKit2.dll
+
diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs
index f8c22750d..d59deb2f2 100755
--- a/ArchiSteamFarm/Bot.cs
+++ b/ArchiSteamFarm/Bot.cs
@@ -2417,18 +2417,18 @@ namespace ArchiSteamFarm {
}
}
- (bool IsSteamParentalEnabled, string SteamParentalCode)? steamParental = await ArchiHandler.ValidateSteamParental(BotConfig.SteamParentalCode).ConfigureAwait(false);
+ if (callback.ParentalSettings != null) {
+ (bool isSteamParentalEnabled, string steamParentalCode) = ValidateSteamParental(callback.ParentalSettings, BotConfig.SteamParentalCode);
- if (steamParental.HasValue) {
- if (steamParental.Value.IsSteamParentalEnabled) {
+ if (isSteamParentalEnabled) {
SteamParentalActive = true;
- if (!string.IsNullOrEmpty(steamParental.Value.SteamParentalCode)) {
- if (BotConfig.SteamParentalCode != steamParental.Value.SteamParentalCode) {
- SetUserInput(ASF.EUserInputType.SteamParentalCode, steamParental.Value.SteamParentalCode);
+ if (!string.IsNullOrEmpty(steamParentalCode)) {
+ if (BotConfig.SteamParentalCode != steamParentalCode) {
+ SetUserInput(ASF.EUserInputType.SteamParentalCode, steamParentalCode);
}
} else {
- string steamParentalCode = await Logging.GetUserInput(ASF.EUserInputType.SteamParentalCode, BotName).ConfigureAwait(false);
+ steamParentalCode = await Logging.GetUserInput(ASF.EUserInputType.SteamParentalCode, BotName).ConfigureAwait(false);
if (string.IsNullOrEmpty(steamParentalCode) || (steamParentalCode.Length != BotConfig.SteamParentalCodeLength)) {
Stop();
@@ -2943,6 +2943,64 @@ namespace ArchiSteamFarm {
return message.Replace("\\[", "[").Replace("\\\\", "\\");
}
+ private (bool IsSteamParentalEnabled, string SteamParentalCode) ValidateSteamParental(ParentalSettings settings, string steamParentalCode = null) {
+ if (settings == null) {
+ ArchiLogger.LogNullError(nameof(settings));
+
+ return (false, null);
+ }
+
+ if (!settings.is_enabled) {
+ return (false, null);
+ }
+
+ ArchiCryptoHelper.ESteamParentalAlgorithm steamParentalAlgorithm;
+
+ switch (settings.passwordhashtype) {
+ case 4:
+ steamParentalAlgorithm = ArchiCryptoHelper.ESteamParentalAlgorithm.Pbkdf2;
+
+ break;
+ case 6:
+ steamParentalAlgorithm = ArchiCryptoHelper.ESteamParentalAlgorithm.SCrypt;
+
+ break;
+ default:
+ ArchiLogger.LogGenericError(string.Format(Strings.WarningUnknownValuePleaseReport, nameof(settings.passwordhashtype), settings.passwordhashtype));
+
+ return (true, null);
+ }
+
+ if ((steamParentalCode != null) && (steamParentalCode.Length == BotConfig.SteamParentalCodeLength)) {
+ byte i = 0;
+ byte[] password = new byte[steamParentalCode.Length];
+
+ foreach (char character in steamParentalCode) {
+ if ((character < '0') || (character > '9')) {
+ break;
+ }
+
+ password[i++] = (byte) character;
+ }
+
+ if (i >= steamParentalCode.Length) {
+ byte[] passwordHash = ArchiCryptoHelper.GenerateSteamParentalHash(password, settings.salt, (byte) settings.passwordhash.Length, steamParentalAlgorithm);
+
+ if (passwordHash.SequenceEqual(settings.passwordhash)) {
+ return (true, steamParentalCode);
+ }
+ }
+ }
+
+ ArchiLogger.LogGenericInfo(Strings.BotGeneratingSteamParentalCode);
+
+ steamParentalCode = ArchiCryptoHelper.RecoverSteamParentalCode(settings.passwordhash, settings.salt, steamParentalAlgorithm);
+
+ ArchiLogger.LogGenericInfo(Strings.Done);
+
+ return (true, steamParentalCode);
+ }
+
internal enum EFileType : byte {
Config,
Database,
diff --git a/ArchiSteamFarm/lib/SteamKit2.dll b/ArchiSteamFarm/lib/SteamKit2.dll
new file mode 100644
index 000000000..dfeeb3c37
Binary files /dev/null and b/ArchiSteamFarm/lib/SteamKit2.dll differ
diff --git a/ArchiSteamFarm/lib/SteamKit2.xml b/ArchiSteamFarm/lib/SteamKit2.xml
new file mode 100644
index 000000000..721f77275
--- /dev/null
+++ b/ArchiSteamFarm/lib/SteamKit2.xml
@@ -0,0 +1,8516 @@
+
+
+
+ SteamKit2
+
+
+
+
+ Represents a protobuf backed client message. Only contains the header information.
+
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+ Client messages of this type are always protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the session id for this client message.
+
+
+ The session id.
+
+
+
+
+ Gets or sets the for this client message.
+
+
+ The .
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Shorthand accessor for the protobuf header.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this client message from.
+
+
+
+ Serializes this client message instance to a byte array.
+
+ This class is for reading Protobuf messages only. If you want to create a protobuf message, use .
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a protobuf backed client message.
+
+ The body type of this message.
+
+
+
+ Gets the body structure of this message.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a client send constructor.
+
+ The network message type this client message represents.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This a reply constructor.
+
+ The network message type this client message represents.
+ The message that this instance is a reply for.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this client message from.
+
+
+
+ Serializes this client message instance to a byte array.
+
+
+ Data representing a client message.
+
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a struct backed client message.
+
+ The body type of this message.
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the session id for this client message.
+
+
+ The session id.
+
+
+
+
+ Gets or sets the for this client message.
+
+
+ The .
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Gets the body structure of this message.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a client send constructor.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This a reply constructor.
+
+ The message that this instance is a reply for.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this client message from.
+
+
+
+ Serializes this client message instance to a byte array.
+
+
+ Data representing a client message.
+
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a struct backed message without session or client info.
+
+ The body type of this message.
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the session id for this client message.
+ This type of client message does not support session ids
+
+
+ The session id.
+
+
+
+
+ Gets or sets the for this client message.
+ This type of client message goes not support SteamIDs.
+
+
+ The .
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Gets the structure body of the message.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a client send constructor.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This a reply constructor.
+
+ The message that this instance is a reply for.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this client message from.
+
+
+
+ Serializes this client message instance to a byte array.
+
+
+ Data representing a client message.
+
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a protobuf backed game coordinator message.
+
+ The body type of this message.
+
+
+
+ Gets a value indicating whether this gc message is protobuf backed.
+ Client messages of this type are always protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this gc message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the target job id for this gc message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this gc message.
+
+
+ The source job id.
+
+
+
+
+ Shorthand accessor for the protobuf header.
+
+
+
+
+ Gets the body structure of this message.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a client send constructor.
+
+ The network message type this gc message represents.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This a reply constructor.
+
+ The network message type this gc message represents.
+ The message that this instance is a reply for.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this gc message from.
+
+
+
+ Serializes this gc message instance to a byte array.
+
+
+ Data representing a gc message.
+
+
+
+
+ Initializes this gc message by deserializing the specified data.
+
+ The data representing a gc message.
+
+
+
+ Represents a struct backed game coordinator message.
+
+ The body type of this message.
+
+
+
+ Gets a value indicating whether this gc message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this gc message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the target job id for this gc message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this gc message.
+
+
+ The source job id.
+
+
+
+
+ Gets the body structure of this message.
+
+
+
+
+ Initializes a new instance of the class.
+ This is a client send constructor.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This a reply constructor.
+
+ The message that this instance is a reply for.
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Initializes a new instance of the class.
+ This is a recieve constructor.
+
+ The packet message to build this gc message from.
+
+
+
+ Serializes this gc message instance to a byte array.
+
+
+ Data representing a client message.
+
+
+
+
+ Initializes this gc message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a unified interface into client messages.
+
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The message type.
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Serializes this client message instance to a byte array.
+
+ Data representing a client message.
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ This is the abstract base class for all available game coordinator messages.
+ It's used to maintain packet payloads and provide a header for all gc messages.
+
+ The header type for this gc message.
+
+
+
+ Gets a value indicating whether this gc message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this gc message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the target job id for this gc message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this gc message.
+
+
+ The source job id.
+
+
+
+
+ Gets the header for this message type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Serializes this gc message instance to a byte array.
+
+
+ Data representing a gc message.
+
+
+
+
+ Initializes this gc message by deserializing the specified data.
+
+ The data representing a gc message.
+
+
+
+ Represents a simple unified interface into game coordinator messages recieved from the network.
+ This is contrasted with in that this interface is packet body agnostic
+ and only allows simple access into the header. This interface is also immutable, and the underlying
+ data cannot be modified.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Represents a protobuf backed packet message.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+ This type of message is always protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The network message type for this packet message.
+ The data.
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Represents a packet message with extended header information.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+ This type of message is never protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The network message type for this packet message.
+ The data.
+
+
+
+ Gets the underlying data that represents this packet message.
+
+ The data.
+
+
+
+ This base client handles the underlying connection to a CM server. This class should not be use directly, but through the class.
+
+
+
+
+ The configuration for this client.
+
+
+
+
+ Bootstrap list of CM servers.
+
+
+
+
+ Returns the the local IP of this client.
+
+ The local IP.
+
+
+
+ Gets the universe of this client.
+
+ The universe.
+
+
+
+ Gets a value indicating whether this instance is connected to the remote CM server.
+
+
+ true if this instance is connected; otherwise, false.
+
+
+
+
+ Gets the session token assigned to this client from the AM.
+
+
+
+
+ Gets the Steam recommended Cell ID 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.
+
+
+
+
+ Gets the session ID 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 session ID.
+
+
+
+ Gets the SteamID 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 or sets the connection timeout used when connecting to the Steam server.
+
+
+ The connection timeout.
+
+
+
+
+ Gets or sets the network listening interface. Use this for debugging only.
+ For your convenience, you can use class.
+
+
+
+
+ Initializes a new instance of the class with a specific configuration.
+
+ The configuration to use for this client.
+ The configuration object is null
+
+
+
+ Connects this client to a Steam3 server.
+ This begins the process of connecting and encrypting the data channel between the client and the server.
+ Results are returned asynchronously in a .
+ If the server that SteamKit attempts to connect to is down, a
+ will be posted instead.
+ SteamKit will not attempt to reconnect to Steam, you must handle this callback and call Connect again
+ preferrably after a short delay.
+
+
+ The of the CM server to connect to.
+ If null, SteamKit will randomly select a CM server from its internal list.
+
+
+
+
+ Disconnects this client.
+
+
+
+
+ Sends the specified client message to the server.
+ This method automatically assigns the correct SessionID and SteamID of the message.
+
+ The client message to send.
+
+
+
+ Returns the list of servers matching the given type
+
+ Server type requested
+ List of server endpoints
+
+
+
+ Called when a client message is received from the network.
+
+ The packet message.
+
+
+
+ Called when the client is securely connected to Steam3.
+
+
+
+
+ Called when the client is physically disconnected from Steam3.
+
+
+
+
+ This is the base class for the utility class.
+ This is for internal use only, and shouldn't be used directly.
+
+
+
+
+ Represents a unified interface into client messages.
+
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The message type.
+
+
+
+
+ Gets or sets the session id for this client message.
+
+
+ The session id.
+
+
+
+
+ Gets or sets the for this client message.
+
+
+ The .
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Serializes this client message instance to a byte array.
+
+ Data representing a client message.
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ This class provides a payload backing to client messages.
+
+
+
+
+ Returns a which is the backing stream for client message payload data.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Seeks within the payload to the specified offset.
+
+ The offset in the payload to seek to.
+ The origin to seek from.
+ The new position within the stream, calculated by combining the initial reference point and the offset.
+
+
+
+ Writes a single unsigned byte to the message payload.
+
+ The unsigned byte.
+
+
+
+ Writes a single signed byte to the message payload.
+
+ The signed byte.
+
+
+
+ Writes the specified byte array to the message payload.
+
+ The byte array.
+
+
+
+ Writes a single 16bit short to the message payload.
+
+ The short.
+
+
+
+ Writes a single unsigned 16bit short to the message payload.
+
+ The unsigned short.
+
+
+
+ Writes a single 32bit integer to the message payload.
+
+ The integer.
+
+
+
+ Writes a single unsigned 32bit integer to the message payload.
+
+ The unsigned integer.
+
+
+
+ Writes a single 64bit long to the message payload.
+
+ The long.
+
+
+
+ Writes a single unsigned 64bit long to the message payload.
+
+ The unsigned long.
+
+
+
+ Writes a single 32bit float to the message payload.
+
+ The float.
+
+
+
+ Writes a single 64bit double to the message payload.
+
+ The double.
+
+
+
+ Writes the specified string to the message payload using default encoding.
+ This function does not write a terminating null character.
+
+ The string to write.
+
+
+
+ Writes the specified string to the message payload using the specified encoding.
+ This function does not write a terminating null character.
+
+ The string to write.
+ The encoding to use.
+
+
+
+ Writes the secified string and a null terminator to the message payload using default encoding.
+
+ The string to write.
+
+
+
+ Writes the specified string and a null terminator to the message payload using the specified encoding.
+
+ The string to write.
+ The encoding to use.
+
+
+
+ Reads a single signed byte from the message payload.
+
+ The signed byte.
+
+
+
+ Reads a single signed byte from the message payload.
+
+ The signed byte.
+
+
+
+ Reads a single unsigned byte from the message payload.
+
+ The unsigned byte.
+
+
+
+ Reads a single unsigned byte from the message payload.
+
+ The unsigned byte.
+
+
+
+ Reads a number of bytes from the message payload.
+
+ The number of bytes to read.
+ The data.
+
+
+
+ Reads a single 16bit short from the message payload.
+
+ The short.
+
+
+
+ Reads a single 16bit short from the message payload.
+
+ The short.
+
+
+
+ Reads a single unsigned 16bit short from the message payload.
+
+ The unsigned short.
+
+
+
+ Reads a single unsigned 16bit short from the message payload.
+
+ The unsigned short.
+
+
+
+ Reads a single 32bit integer from the message payload.
+
+ The integer.
+
+
+
+ Reads a single 32bit integer from the message payload.
+
+ The integer.
+
+
+
+ Reads a single unsigned 32bit integer from the message payload.
+
+ The unsigned integer.
+
+
+
+ Reads a single unsigned 32bit integer from the message payload.
+
+ The unsigned integer.
+
+
+
+ Reads a single 64bit long from the message payload.
+
+ The long.
+
+
+
+ Reads a single 64bit long from the message payload.
+
+ The long.
+
+
+
+ Reads a single unsigned 64bit long from the message payload.
+
+ The unsigned long.
+
+
+
+ Reads a single unsigned 64bit long from the message payload.
+
+ The unsigned long.
+
+
+
+ Reads a single 32bit float from the message payload.
+
+ The float.
+
+
+
+ Reads a single 32bit float from the message payload.
+
+ The float.
+
+
+
+ Reads a single 64bit double from the message payload.
+
+ The double.
+
+
+
+ Reads a null terminated string from the message payload with the default encoding.
+
+ The string.
+
+
+
+ Reads a null terminated string from the message payload with the specified encoding.
+
+ The encoding to use.
+ /// The string.
+
+
+
+ This is the abstract base class for all available client messages.
+ It's used to maintain packet payloads and provide a header for all client messages.
+
+ The header type for this client message.
+
+
+
+ Gets a value indicating whether this client message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this client message.
+
+
+ The network message type.
+
+
+
+
+ Gets or sets the session id for this client message.
+
+
+ The session id.
+
+
+
+
+ Gets or sets the for this client message.
+
+
+ The .
+
+
+
+
+ Gets or sets the target job id for this client message.
+
+
+ The target job id.
+
+
+
+
+ Gets or sets the source job id for this client message.
+
+
+ The source job id.
+
+
+
+
+ Gets the header for this message type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of bytes to initialize the payload capacity to.
+
+
+
+ Serializes this client message instance to a byte array.
+
+
+ Data representing a client message.
+
+
+
+
+ Initializes this client message by deserializing the specified data.
+
+ The data representing a client message.
+
+
+
+ Represents a simple unified interface into client messages recieved from the network.
+ This is contrasted with in that this interface is packet body agnostic
+ and only allows simple access into the header. This interface is also immutable, and the underlying
+ data cannot be modified.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Represents a protobuf backed packet message.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+ This type of message is always protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The network message type for this packet message.
+ The data.
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Represents a packet message with extended header information.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+ This type of message is never protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The network message type for this packet message.
+ The data.
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Represents a packet message with basic header information.
+
+
+
+
+ Gets a value indicating whether this packet message is protobuf backed.
+ This type of message is never protobuf backed.
+
+
+ true if this instance is protobuf backed; otherwise, false.
+
+
+
+
+ Gets the network message type of this packet message.
+
+
+ The message type.
+
+
+
+
+ Gets the target job id for this packet message.
+
+
+ The target job id.
+
+
+
+
+ Gets the source job id for this packet message.
+
+
+ The source job id.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The network message type for this packet message.
+ The data.
+
+
+
+ Gets the underlying data that represents this client message.
+
+ The data.
+
+
+
+ Occurs when a net message is recieved over the network.
+
+
+
+
+ The remote of the current connection.
+ This is non-null between and , inclusive.
+
+
+
+
+ Occurs when the physical connection is established.
+
+
+
+
+ Occurs when the physical connection is broken.
+
+
+
+
+ Connects to the specified end point.
+
+ The end point to connect to.
+ Timeout in milliseconds
+
+
+
+ Disconnects this instance.
+
+ If true, this disconnection attempt was initated by a consumer.
+
+
+
+ Sends the specified data packet.
+
+ The data packet to send.
+
+
+
+ Gets the local IP.
+
+ The local IP.
+
+
+
+ The type of communication protocol that this connection uses.
+
+
+
+
+ Represents data that has been received over the network.
+
+
+
+
+ The type of communications protocol to use when communicating with the Steam backend
+
+
+
+
+ TCP
+
+
+
+
+ UDP
+
+
+
+
+ WebSockets (HTTP / TLS)
+
+
+
+
+ All available protocol types
+
+
+
+
+ Connects to the specified end point.
+
+ The end point to connect to.
+ Timeout in milliseconds
+
+
+
+ Nets the loop.
+
+
+
+
+ Seconds to wait before sending packets.
+
+
+
+
+ Seconds to wait before considering the connection dead.
+
+
+
+
+ Maximum number of packets to resend when RESEND_DELAY is exceeded.
+
+
+
+
+ Maximum number of packets that we can be waiting on at a time.
+
+
+
+
+ Contains information about the state of the connection, used to filter out packets that are
+ unexpected or not valid given the state of the connection.
+
+
+
+
+ The next outgoing sequence number to be used.
+
+
+
+
+ The highest sequence number of an outbound packet that has been sent.
+
+
+
+
+ The sequence number of the highest packet acknowledged by the server.
+
+
+
+
+ The sequence number we plan on acknowledging receiving with the next Ack. All packets below or equal
+ to inSeq *must* have been received, but not necessarily handled.
+
+
+
+
+ The highest sequence number we've acknowledged receiving.
+
+
+
+
+ The highest sequence number we've processed.
+
+
+
+
+ Connects to the specified CM server.
+
+ The endPoint to connect to
+ Timeout in milliseconds
+
+
+
+ Disconnects this instance, blocking until the queue of messages is empty or the connection
+ is otherwise terminated.
+
+
+
+
+ Serializes and sends the provided data to the server in as many packets as is necessary.
+
+ The data to send to the server
+
+
+
+ Sends the data sequenced as a single message, splitting it into multiple parts if necessary.
+
+ The data to send.
+
+
+
+ Sends the packet as a sequenced, reliable packet.
+
+ The packet.
+
+
+
+ Sends the packets as one sequenced, reliable net message.
+
+ The packets that make up the single net message
+
+
+
+ Sends a packet immediately.
+
+ The packet.
+
+
+
+ Sends a datagram Ack, used when an Ack needs to be sent but there is no data response to piggy-back on.
+
+
+
+
+ Sends or resends sequenced messages, if necessary. Also responsible for throttling
+ the rate at which they are sent.
+
+
+
+
+ Returns the number of message parts in the next message.
+
+ Non-zero number of message parts if a message is ready to be handled, 0 otherwise
+
+
+
+ Dispatches up to one message to the rest of SteamKit
+
+ True if a message was dispatched, false otherwise
+
+
+
+ Processes incoming packets, maintains connection consistency, and oversees outgoing packets.
+
+
+
+
+ Receives the packet, performs all sanity checks and then passes it along as necessary.
+
+ The packet.
+
+
+
+ Receives the challenge and responds with a Connect request
+
+ The packet.
+
+
+
+ Receives the notification of an accepted connection and sets the connection id that will be used for the
+ connection's duration.
+
+ The packet.
+
+
+
+ Receives typical data packets before dispatching them for consumption by the rest of SteamKit
+
+ The packet.
+
+
+
+ Gets a value indicating whether this instance is valid.
+
+
+ true if this instance is valid; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class with
+ information from the memory stream.
+
+ Header is populated from the MemoryStream
+
+ The stream containing the packet and it's payload data.
+
+
+
+ Initializes a new instance of the class, with
+ no payload.
+
+ Header must be populated manually.
+
+ The type.
+
+
+
+ Initializes a new instance of the class, of the
+ specified type containing the specified payload.
+
+ Header must be populated manually.
+
+ The type.
+ The payload.
+
+
+
+ Initializes a new instance of the class, of the
+ specified type containing the first 'length' bytes of specified payload.
+
+ Header must be populated manually.
+
+ The type.
+ The payload.
+ The length.
+
+
+
+ Sets the payload
+
+ The payload to copy.
+
+
+
+ Sets the payload.
+
+ The payload.
+ The length.
+
+
+
+ Serializes the UdpPacket.
+
+ The serialized packet.
+
+
+
+ The CDNClient class is used for downloading game content from the Steam servers.
+
+
+
+
+ Represents a single Steam3 'Steampipe' content server.
+
+
+
+
+ The protocol used to connect to this server
+
+
+
+
+ Server does not advertise HTTPS support, connect over HTTP
+
+
+
+
+ Server advertises it supports HTTPS, connection made over HTTPS
+
+
+
+
+ Gets the supported connection protocol of the server.
+
+
+
+
+ Gets the hostname of the server.
+
+
+
+
+ Gets the virtual hostname of the server.
+
+
+
+
+ Gets the port of the server.
+
+
+
+
+ Gets the type of the server.
+
+
+
+
+ Gets the SourceID this server belongs to.
+
+
+
+
+ Gets the CellID this server belongs to.
+
+
+
+
+ Gets the load value associated with this server.
+
+
+
+
+ Gets the weighted load.
+
+
+
+
+ Gets the number of entries this server is worth.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ A IPEndPoint to convert into a .
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ A DnsEndPoint to convert into a .
+
+ The result of the conversion.
+
+
+
+
+ Returns a that represents this server.
+
+
+ A that represents this server.
+
+
+
+
+ Represents a single downloaded chunk from a file in a depot.
+
+
+
+
+ Gets the depot manifest chunk information associated with this chunk.
+
+
+
+
+ Gets a value indicating whether this chunk has been processed. A chunk is processed when the data has been decrypted and decompressed.
+
+
+ true if this chunk has been processed; otherwise, false.
+
+
+
+
+ Gets the underlying data for this chunk.
+
+
+
+
+ Processes the specified depot key by decrypting the data with the given depot encryption key, and then by decompressing the data.
+ If the chunk has already been processed, this function does nothing.
+
+ The depot decryption key.
+ Thrown if the processed data does not match the expected checksum given in it's chunk information.
+
+
+
+ Default timeout to use when making requests
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The this instance will be associated with.
+ The SteamClient instance must be connected and logged onto Steam.
+
+ The optional appticket for the depot that will be downloaded.
+ This must be present when connected to steam non-anonymously.
+
+
+
+
+ Fetches a list of content servers.
+
+
+ The optional Steam3 content server to fetch the list from.
+ If this parameter is not specified, a random CS server will be selected.
+
+
+ The optional CellID used to specify which regional servers should be returned in the list.
+ If this parameter is not specified, Steam's GeoIP suggested CellID will be used instead.
+
+ The maximum amount of servers to request.
+ A list of servers.
+
+ 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.
+
+
+
+ Connects and initializes a session to the specified content server.
+
+ 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.
+
+
+
+ Authenticate a CDNClient to a depot in the connected session
+
+ The id of the depot being accessed.
+
+ The optional 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.
+
+ CDN auth token for CDN content server endpoints.
+ 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.
+ 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.
+ CDN hostname.
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+ 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.
+ CDN hostname.
+ 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.
+
+
+
+ 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.
+
+
+
+ Disposes of this object.
+
+
+
+
+ A server list provider that uses a file to persist the server list using protobuf
+
+
+
+
+ Initialize a new instance of FileStorageServerListProvider
+
+
+
+
+ Read the stored list of servers from the file
+
+ List of servers if persisted, otherwise an empty list
+
+
+
+ Writes the supplied list of servers to persistent storage
+
+ List of server endpoints
+ Awaitable task for write completion
+
+
+
+ An interface for persisting the server list for connection discovery
+
+
+
+
+ Ask a provider to fetch any servers that it has available
+
+ A list of IPEndPoints representing servers
+
+
+
+ Update the persistent list of endpoints
+
+ List of endpoints
+
+
+
+ A server list provider that uses IsolatedStorage to persist the server list
+
+
+
+
+ Initialize a new instance of IsolatedStorageServerListProvider using
+
+
+
+
+ Read the stored list of servers from IsolatedStore
+
+ List of servers if persisted, otherwise an empty list
+
+
+
+ Writes the supplied list of servers to persistent storage
+
+ List of server endpoints
+ Awaitable task for write completion
+
+
+
+ A server list provider that returns an empty list, for consumers that populate the server list themselves
+
+
+
+
+ No-op implementation that returns an empty server list
+
+ Empty server list
+
+
+
+ No-op implementation that does not persist server list
+
+ Server list
+ Completed task
+
+
+
+ Represents the information needed to connect to a CM server
+
+
+
+
+ The endpoint of the server to connect to.
+
+
+
+
+ The various protocol types that can be used to communicate with this server.
+
+
+
+
+ Gets the host of the associated endpoint. This could be an IP address, or a DNS host name.
+
+ The of the associated endpoint.
+
+
+
+ Gets the port number of the associated endpoint.
+
+ The port numer of the associated endpoint.
+
+
+
+ Creates a server record for a given endpoint.
+
+ The host to connect to. This can be an IP address or a DNS name.
+ The port to connect to.
+ The protocol types that this server supports.
+
+
+
+
+ Creates a Socket server given an IP endpoint.
+
+ The IP address and port of the server.
+ A new instance
+
+
+
+ Creates a Socket server given an IP endpoint.
+
+ The IP address and port of the server, as a string.
+ A new , if the address was able to be parsed. null otherwise.
+ true if the address was able to be parsed, false otherwise.
+
+
+
+ Creates a WebSocket server given an address in the form of "hostname:port".
+
+ The name and port of the server
+ A new instance
+
+
+
+ Determines whether two objects are equal.
+
+ The object on the left-hand side of the equality operator.
+ The object on the right-hand side of the equality operator.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+
+ Determines whether two objects are not equal.
+
+ The object on the left-hand side of the inequality operator.
+ The object on the right-hand side of the inequality operator.
+ true if the specified object is not equal to the current object; otherwise, false.
+
+
+
+ Determines whether the specified object is equal to the current object.
+
+
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+
+ Hash function
+
+ A hash code for the current object.
+
+
+
+ Currently marked quality of a server. All servers start off as Undetermined.
+
+
+
+
+ Known good server.
+
+
+
+
+ Known bad server.
+
+
+
+
+ Smart list of CM servers.
+
+
+
+
+ Initialize SmartCMServerList with a given server list provider
+
+ The Steam configuration to use.
+ The configuration object is null.
+
+
+
+ Determines how long a server's bad connection state is remembered for.
+
+
+
+
+ Resets the scores of all servers which has a last bad connection more than ago.
+
+
+
+
+ Replace the list with a new list of servers provided to us by the Steam servers.
+
+ The s to use for this .
+
+
+
+ Explicitly resets the known state of all servers.
+
+
+
+
+ Perform the actual score lookup of the server list and return the candidate
+
+ IPEndPoint candidate
+
+
+
+ Get the next server in the list.
+
+ The minimum supported of the server to return.
+ An , or null if the list is empty.
+
+
+
+ Get the next server in the list.
+
+ The minimum supported of the server to return.
+ An , or null if the list is empty.
+
+
+
+ Gets the s of all servers in the server list.
+
+ An array contains the s of the servers in the list
+
+
+
+ This class implements the base requirements every message handler should inherit from.
+
+
+
+
+ Gets the underlying for use in sending replies.
+
+
+
+
+ Gets or sets whether or not the related should imminently expect the server to close the connection.
+ If this is true when the connection is closed, the 's property
+ will be set to true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for interacting with apps and packages on the Steam network.
+
+
+
+
+ This callback is fired during logon, informing the client of it's available licenses.
+
+
+
+
+ Represents a granted license (steam3 subscription) for one or more games.
+
+
+
+
+ Gets the package ID used to identify the license.
+
+ The package ID.
+
+
+
+ Gets the last change number for this license.
+
+
+
+
+ Gets the time the license was created.
+
+ The time created.
+
+
+
+ Gets the next process time for the license.
+
+ The next process time.
+
+
+
+ Gets the minute limit of the license.
+
+ The minute limit.
+
+
+
+ Gets the minutes used of the license.
+
+ The minutes used.
+
+
+
+ Gets the payment method used when the license was created.
+
+ The payment method.
+
+
+
+ Gets the license flags.
+
+ The license flags.
+
+
+
+ Gets the two letter country code where the license was purchased.
+
+ The purchase country code.
+
+
+
+ Gets the type of the license.
+
+ The type of the license.
+
+
+
+ Gets the territory code of the license.
+
+ The territory code.
+
+
+
+ Gets the result of the message.
+
+ The result.
+
+
+
+ Gets the license list.
+
+ The license list.
+
+
+
+ This callback is received in response to calling , informing the client of newly granted packages, if any.
+
+
+
+
+ Gets the result of the message.
+
+ The result.
+
+
+
+ Gets the list of granted apps.
+
+ List of granted apps.
+
+
+
+ Gets the list of granted packages.
+
+ List of granted packages.
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Gets the result of requesting the ticket.
+
+
+
+
+ Gets the AppID this ticket is for.
+
+
+
+
+ Gets the ticket data.
+
+
+
+
+ This callback is recieved in response to calling .
+
+
+
+
+ Gets the result of requesting this encryption key.
+
+
+
+
+ Gets the DepotID this encryption key is for.
+
+
+
+
+ Gets the encryption key for this depot.
+
+
+
+
+ This callback is fired when the client receives a list of game connect tokens.
+
+
+
+
+ Gets a count of tokens to keep.
+
+
+
+
+ Gets the list of tokens.
+
+
+
+
+ This callback is fired when the client receives it's VAC banned status.
+
+
+
+
+ Gets a list of VAC banned apps the client is banned from.
+
+
+
+
+ This callback is fired when the PICS returns access tokens for a list of appids and packageids
+
+
+
+
+ Gets a list of denied package tokens
+
+
+
+
+ Gets a list of denied app tokens
+
+
+
+
+ Dictionary containing requested package tokens
+
+
+
+
+ Dictionary containing requested package tokens
+
+
+
+
+ This callback is fired when the PICS returns the changes since the last change number
+
+
+
+
+ Holds the change data for a single app or package
+
+
+
+
+ App or package ID this change data represents
+
+
+
+
+ Current change number of this app
+
+
+
+
+ Signals if an access token is needed for this request
+
+
+
+
+ Supplied change number for the request
+
+
+
+
+ Gets the current change number
+
+
+
+
+ If this update requires a full update of the information
+
+
+
+
+ Dictionary containing requested package tokens
+
+
+
+
+ Dictionary containing requested package tokens
+
+
+
+
+ This callback is fired when the PICS returns the product information requested
+
+
+
+
+ Represents the information for a single app or package
+
+
+
+
+ Gets the ID of the app or package
+
+
+
+
+ Gets the current change number for the app or package
+
+
+
+
+ Gets if an access token was required for the request
+
+
+
+
+ Gets the hash of the content
+
+
+
+
+ Gets the KeyValue info
+
+
+
+
+ For an app request, returns if only the public information was requested
+
+
+
+
+ Whether or not to use HTTP to load the KeyValues data.
+
+
+
+
+ For an app metadata-only request, returns the Uri for HTTP appinfo requests.
+
+
+
+
+ Gets if this response contains only product metadata
+
+
+
+
+ Gets if there are more product information responses pending
+
+
+
+
+ Gets a list of unknown package ids
+
+
+
+
+ Gets a list of unknown app ids
+
+
+
+
+ Dictionary containing requested app info
+
+
+
+
+ Dictionary containing requested package info
+
+
+
+
+ This callback is received when the list of guest passes is updated.
+
+
+
+
+ Result of the operation
+
+
+
+
+ Number of guest passes to be given out
+
+
+
+
+ Number of guest passes to be redeemed
+
+
+
+
+ Guest pass list
+
+
+
+
+ This callback is received when a CDN auth token is received
+
+
+
+
+ Result of the operation
+
+
+
+
+ CDN auth token
+
+
+
+
+ Token expiration date
+
+
+
+
+ This callback is received when a beta password check has been completed
+
+
+
+
+ Result of the operation
+
+
+
+
+ Map of beta names to their encryption keys
+
+
+
+
+ Represents a PICS request used for
+
+
+
+
+ Gets or sets the ID of the app or package being requested
+
+ The ID
+
+
+
+ Gets or sets the access token associated with the request
+
+ The access token
+
+
+
+ Requests only public app info
+
+ The flag specifying if only public data is requested
+
+
+
+ Instantiate an empty PICS product info request
+
+
+
+
+ Instantiate a PICS product info request for a given app or package id
+
+ App or package ID
+
+
+
+ Instantiate a PICS product info request for a given app or package id and an access token
+
+ App or package ID
+ PICS access token
+ Get only public info
+
+
+
+ Requests an app ownership ticket for the specified AppID.
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ The appid to request the ownership ticket of.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request the depot decryption key for a specified DepotID.
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ The DepotID to request a decryption key for.
+ The AppID to request the decryption key for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request PICS access tokens for an app or package.
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ App id to request access token for.
+ Package id to request access token for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request PICS access tokens for a list of app ids and package ids
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ List of app ids to request access tokens for.
+ List of package ids to request access tokens for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request changes for apps and packages since a given change number
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ Last change number seen.
+ Whether to send app changes.
+ Whether to send package changes.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request product information for an app or package
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ App id requested.
+ Package id requested.
+ Whether to send only public information.
+ Whether to send only meta data.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request product information for a list of apps or packages
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ List of app ids requested.
+ List of package ids requested.
+ Whether to send only public information.
+ Whether to send only meta data.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request product information for a list of apps or packages
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ List of requests for apps.
+ List of requests for packages.
+ Whether to send only meta data.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request product information for an app or package
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ App id requested.
+ Depot id requested.
+ CDN host name being requested.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request a free license for given appid, can be used for free on demand apps
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ The app to request a free license for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Request a free license for given appids, can be used for free on demand apps
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ The apps to request a free license for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Submit a beta password for a given app to retrieve any betas and their encryption keys.
+ Results are returned in a callback.
+ The returned can also be awaited to retrieve the callback result.
+
+ App id requested.
+ Password to check.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for interacting with remote storage and user generated content.
+
+
+
+
+ This callback is recieved in response to calling .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the App ID the UGC is for.
+
+
+
+
+ Gets the SteamID of the UGC's creator.
+
+
+
+
+ Gets the URL that the content is located at.
+
+
+
+
+ Gets the name of the file.
+
+
+
+
+ Gets the size of the file.
+
+
+
+
+ This callback is recieved in response to calling .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the App ID the file is for.
+
+
+
+
+ Gets the file name request.
+
+
+
+
+ Gets the SHA hash of the file.
+
+
+
+
+ Gets the timestamp of the file.
+
+
+
+
+ Gets the size of the file.
+
+
+
+
+ Gets if the file was explicity deleted by the user.
+
+
+
+
+ This callback is recieved in response to calling .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the resulting UGC handle.
+
+
+
+
+ Requests details for a specific item of user generated content from the Steam servers.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The unique user generated content id.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Requests details for a specific file in the user's Cloud storage.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The app id of the game.
+ The path to the file being requested.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Commit a Cloud file at the given path to make its UGC handle publicly visible.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The app id of the game.
+ The path to the file being requested.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler handles all interaction with other users on the Steam3 network.
+
+
+
+
+ Represents the details of a user which is a member of a chatroom.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The KeyValue backing store for this member info.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the clan permission details of this chat member.
+
+
+
+
+ Gets the permissions this user has with the chatroom.
+
+
+
+
+ Gets the of this user.
+
+
+
+
+ This callback is fired in response to someone changing their friend details over the network.
+
+
+
+
+ Gets the status flags. This shows what has changed.
+
+ The status flags.
+
+
+
+ Gets the friend ID.
+
+ The friend ID.
+
+
+
+ Gets the state.
+
+ The state.
+
+
+
+ Gets the state flags.
+
+ The state flags.
+
+
+
+ Gets the game app ID.
+
+ The game app ID.
+
+
+
+ Gets the game ID.
+
+ The game ID.
+
+
+
+ Gets the name of the game.
+
+ The name of the game.
+
+
+
+ Gets the game server IP.
+
+ The game server IP.
+
+
+
+ Gets the game server port.
+
+ The game server port.
+
+
+
+ Gets the query port.
+
+ The query port.
+
+
+
+ Gets the source steam ID.
+
+ The source steam ID.
+
+
+
+ Gets the game data blob.
+
+ The game data blob.
+
+
+
+ Gets the name.
+
+ The name.
+
+
+
+ Gets the avatar hash.
+
+ The avatar hash.
+
+
+
+ Gets the last log off.
+
+ The last log off.
+
+
+
+ Gets the last log on.
+
+ The last log on.
+
+
+
+ Gets the clan rank.
+
+ The clan rank.
+
+
+
+ Gets the clan tag.
+
+ The clan tag.
+
+
+
+ Gets the online session instances.
+
+ The online session instances.
+
+
+
+ Gets the published session ID.
+
+ The published session ID.
+
+
+
+ This callback is posted when a clan's state has been changed.
+
+
+
+
+ Represents an event or announcement that was posted by a clan.
+
+
+
+
+ Gets the globally unique ID for this specific event.
+
+
+
+
+ Gets the event time.
+
+
+
+
+ Gets the headline of the event.
+
+
+
+
+ Gets the associated with this event, if any.
+
+
+
+
+ Gets a value indicating whether this event was just posted.
+
+
+ true if the event was just posted; otherwise, false.
+
+
+
+
+ Gets the of the clan that posted this state update.
+
+
+
+
+ Gets the account flags.
+
+
+
+
+ Gets the privacy of the chat room.
+
+
+
+
+ Gets the name of the clan.
+
+
+ The name of the clan.
+
+
+
+
+ Gets the SHA-1 avatar hash.
+
+
+
+
+ Gets the total number of members in this clan.
+
+
+
+
+ Gets the number of members in this clan that are currently online.
+
+
+
+
+ Gets the number of members in this clan that are currently chatting.
+
+
+
+
+ Gets the number of members in this clan that are currently in-game.
+
+
+
+
+ Gets any events associated with this clan state update.
+
+
+
+
+ Gets any announcements associated with this clan state update.
+
+
+
+
+ This callback is fired when the client receives a list of friends.
+
+
+
+
+ Represents a single friend entry in a client's friendlist.
+
+
+
+
+ Gets the SteamID of the friend.
+
+ The SteamID.
+
+
+
+ Gets the relationship to this friend.
+
+ The relationship.
+
+
+
+ Gets a value indicating whether this is an incremental update.
+
+ true if incremental; otherwise, false.
+
+
+
+ Gets the friend list.
+
+ The friend list.
+
+
+
+ This callback is fired in response to receiving a message from a friend.
+
+
+
+
+ Gets or sets the sender.
+
+ The sender.
+
+
+
+ Gets the chat entry type.
+
+ The chat entry type.
+
+
+
+ Gets a value indicating whether this message is from a limited account.
+
+ true if this message is from a limited account; otherwise, false.
+
+
+
+ Gets the message.
+
+ The message.
+
+
+
+ This callback is fired in response to receiving an echo message from another instance.
+
+
+
+
+ Gets or sets the recipient
+
+ The recipient.
+
+
+
+ Gets the chat entry type.
+
+ The chat entry type.
+
+
+
+ Gets a value indicating whether this message is from a limited account.
+
+ true if this message is from a limited account; otherwise, false.
+
+
+
+ Gets the message.
+
+ The message.
+
+
+
+ This callback is fired in response to receiving historical messages.
+ See also and
+ .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the SteamID of the user with whom these messages were exchanged.
+
+
+
+
+ The messages exchanged with the user.
+ Offline messages are marked by having set to true
+
+
+
+
+ Represents a single Message sent to or received from a friend
+
+
+
+
+ The SteamID of the User that wrote the message
+
+
+
+
+ Whether or not the message has been read, i.e., is an offline message.
+
+
+
+
+ The actual message
+
+
+
+
+ The time (in UTC) when the message was sent
+
+
+
+
+ This callback is fired in response to adding a user to your friends list.
+
+
+
+
+ Gets the result of the request.
+
+ The result.
+
+
+
+ Gets the SteamID of the friend that was added.
+
+ The SteamID.
+
+
+
+ Gets the persona name of the friend.
+
+ The persona name.
+
+
+
+ This callback is fired in response to attempting to join a chat.
+
+
+
+
+ Gets SteamID of the chat room.
+
+
+
+
+ Gets the friend ID.
+
+
+
+
+ Gets the type of the chat room.
+
+
+ The type of the chat room.
+
+
+
+
+ Gets the SteamID of the chat room owner.
+
+
+
+
+ Gets clan SteamID that owns this chat room.
+
+
+
+
+ Gets the chat flags.
+
+
+
+
+ Gets the chat enter response.
+
+
+
+
+ Gets the number of users currently in this chat room.
+
+
+
+
+ Gets the name of the chat room.
+
+
+
+
+ Gets a list of instances for each of the members of this chat room.
+
+
+
+
+ This callback is fired when a chat room message arrives.
+
+
+
+
+ Gets the SteamID of the chatter.
+
+
+
+
+ Gets the SteamID of the chat room.
+
+
+
+
+ Gets chat entry type.
+
+
+
+
+ Gets the message.
+
+
+
+
+ This callback is fired in response to chat member info being recieved.
+
+
+
+
+ Represents state change information.
+
+
+
+
+ Gets the SteamID of the chatter that was acted on.
+
+
+
+
+ Gets the state change for the acted on SteamID.
+
+
+
+
+ Gets the SteamID of the chatter that acted on .
+
+
+
+
+ Gets the member information for a user that has joined the chat room.
+ This field is only populated when is .
+
+
+
+
+ Gets SteamId of the chat room.
+
+
+
+
+ Gets the info type.
+
+
+
+
+ Gets the state change info for member info updates.
+
+
+
+
+ This callback is fired in response to chat room info being recieved.
+
+
+
+
+ Gets SteamId of the chat room.
+
+
+
+
+ Gets the info type.
+
+
+
+
+ This callback is fired when a chat action has completed.
+
+
+
+
+ Gets the SteamID of the chat room the action was performed in.
+
+
+
+
+ Gets the SteamID of the chat member the action was performed on.
+
+
+
+
+ Gets the chat action that was performed.
+
+
+
+
+ Gets the result of the chat action.
+
+
+
+
+ This callback is fired when a chat invite is recieved.
+
+
+
+
+ Gets the SteamID of the user who was invited to the chat.
+
+
+
+
+ Gets the chat room SteamID.
+
+
+
+
+ Gets the SteamID of the user who performed the invitation.
+
+
+
+
+ Gets the chat room type.
+
+
+
+
+ Gets the SteamID of the chat friend.
+
+
+
+
+ Gets the name of the chat room.
+
+
+
+
+ Gets the GameID associated with this chat room, if it's a game lobby.
+
+
+
+
+ This callback is fired in response to an attempt at ignoring a friend.
+
+
+
+
+ Gets the result of ignoring a friend.
+
+
+
+
+ This callback is fired in response to requesting profile info for a user.
+
+
+
+
+ Gets the result of requesting profile info.
+
+
+
+
+ Gets the this info belongs to.
+
+
+
+
+ Gets the time this account was created.
+
+
+
+
+ Gets the real name.
+
+
+
+
+ Gets the name of the city.
+
+
+
+
+ Gets the name of the state.
+
+
+
+
+ Gets the name of the country.
+
+
+
+
+ Gets the headline.
+
+
+
+
+ Gets the summary.
+
+
+
+
+ This callback is fired in response to setting this client's persona name or state
+ with or .
+
+
+
+
+ Gets the result of changing this client's persona information.
+
+
+
+
+ Gets the name of this client according to Steam.
+
+
+
+
+ Gets the local user's persona name. Will be null before user initialization.
+ User initialization is performed prior to callback.
+
+ The name.
+
+
+
+ Sets the local user's persona name and broadcasts it over the network.
+
+ The name.
+
+
+
+ Gets the local user's persona state.
+
+ The persona state.
+
+
+
+ Sets the local user's persona state and broadcasts it over the network.
+
+ The state.
+
+
+
+ Gets the friend count of the local user.
+
+ The number of friends.
+
+
+
+ Gets a friend by index.
+
+ The index.
+ A valid steamid of a friend if the index is in range; otherwise a steamid representing 0.
+
+
+
+ Gets the persona name of a friend.
+
+ The steam id.
+ The name.
+
+
+
+ Gets the persona state of a friend.
+
+ The steam id.
+ The persona state.
+
+
+
+ Gets the relationship of a friend.
+
+ The steam id.
+ The relationship of the friend to the local user.
+
+
+
+ Gets the game name of a friend playing a game.
+
+ The steam id.
+ The game name of a friend playing a game, or null if they haven't been cached yet.
+
+
+
+ Gets the GameID of a friend playing a game.
+
+ The steam id.
+ The gameid of a friend playing a game, or 0 if they haven't been cached yet.
+
+
+
+ Gets a SHA-1 hash representing the friend's avatar.
+
+ The SteamID of the friend to get the avatar of.
+ A byte array representing a SHA-1 hash of the friend's avatar.
+
+
+
+ Gets the count of clans the local user is a member of.
+
+ The number of clans this user is a member of.
+
+
+
+ Gets a clan SteamID by index.
+
+ The index.
+ A valid steamid of a clan if the index is in range; otherwise a steamid representing 0.
+
+
+
+ Gets the name of a clan.
+
+ The clan SteamID.
+ The name.
+
+
+
+ Gets the relationship of a clan.
+
+ The clan steamid.
+ The relationship of the clan to the local user.
+
+
+
+ Gets a SHA-1 hash representing the clan's avatar.
+
+ The SteamID of the clan to get the avatar of.
+ A byte array representing a SHA-1 hash of the clan's avatar, or null if the clan could not be found.
+
+
+
+ Sends a chat message to a friend.
+
+ The target to send to.
+ The type of message to send.
+ The message to send.
+
+
+
+ Sends a friend request to a user.
+
+ The account name or email of the user.
+
+
+
+ Sends a friend request to a user.
+
+ The SteamID of the friend to add.
+
+
+
+ Removes a friend from your friends list.
+
+ The SteamID of the friend to remove.
+
+
+
+ Attempts to join a chat room.
+
+ The SteamID of the chat room.
+
+
+
+ Attempts to leave a chat room.
+
+ The SteamID of the chat room.
+
+
+
+ Sends a message to a chat room.
+
+ The SteamID of the chat room.
+ The message type.
+ The message.
+
+
+
+ Invites a user to a chat room.
+ The results of this action will be available through the callback.
+
+ The SteamID of the user to invite.
+ The SteamID of the chat room to invite the user to.
+
+
+
+ Kicks the specified chat member from the given chat room.
+
+ The SteamID of chat room to kick the member from.
+ The SteamID of the member to kick from the chat.
+
+
+
+ Bans the specified chat member from the given chat room.
+
+ The SteamID of chat room to ban the member from.
+ The SteamID of the member to ban from the chat.
+
+
+
+ Unbans the specified SteamID from the given chat room.
+
+ The SteamID of chat room to unban the member from.
+ The SteamID of the member to unban from the chat.
+
+
+
+ Requests persona state for a list of specified SteamID.
+ Results are returned in .
+
+ A list of SteamIDs to request the info of.
+ The requested info flags. If none specified, this uses .
+
+
+
+ Requests persona state for a specified SteamID.
+ Results are returned in .
+
+ A SteamID to request the info of.
+ The requested info flags. If none specified, this uses .
+
+
+
+ Ignores or unignores a friend on Steam.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The SteamID of the friend to ignore or unignore.
+ if set to true, the friend will be ignored; otherwise, they will be unignored.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Requests profile information for the given .
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The SteamID of the friend to request the details of.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Requests the last few chat messages with a friend.
+ Results are returned in a
+
+ SteamID of the friend
+
+
+
+ Requests all offline messages.
+ This also marks them as read server side.
+ Results are returned in a .
+
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler handles all game coordinator messaging.
+
+
+
+
+ This callback is fired when a game coordinator message is recieved from the network.
+
+
+
+
+ Gets the game coordinator message type.
+
+
+
+
+ Gets the AppID of the game coordinator the message is from.
+
+
+
+
+ Gets a value indicating whether this message is protobuf'd.
+
+
+ true if this instance is protobuf'd; otherwise, false.
+
+
+
+
+ Gets the actual message.
+
+
+
+
+ Sends a game coordinator message for a specific appid.
+
+ The GC message to send.
+ The app id of the game coordinator to send to.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for interacting with the Steam network as a game server.
+
+
+
+
+ This callback is fired when the game server receives a status reply.
+
+
+
+
+ Gets a value indicating whether this game server is VAC secure.
+
+
+ true if this server is VAC secure; otherwise, false.
+
+
+
+
+ This callback is fired when ticket authentication has completed.
+
+
+
+
+ Gets the SteamID the ticket auth completed for.
+
+
+
+
+ Gets the GameID the ticket was for.
+
+
+
+
+ Gets the authentication state.
+
+
+
+
+ Gets the auth session response.
+
+
+
+
+ Gets the ticket CRC.
+
+
+
+
+ Gets the ticket sequence.
+
+
+
+
+ Represents the details required to log into Steam3 as a game server.
+
+
+
+
+ Gets or sets the authentication token used to log in as a game server.
+
+
+
+
+ Gets or sets the AppID this gameserver will serve.
+
+
+
+
+ Represents the details of the game server's current status.
+
+
+
+
+ Gets or sets the AppID this game server is serving.
+
+
+
+
+ Gets or sets the server's basic state as flags.
+
+
+
+
+ Gets or sets the directory the game data is in.
+
+
+
+
+ Gets or sets the IP address the game server listens on.
+
+
+
+
+ Gets or sets the port the game server listens on.
+
+
+
+
+ Gets or sets the port the game server responds to queries on.
+
+
+
+
+ Gets or sets the current version of the game server.
+
+
+
+
+ Logs onto the Steam network as a persistent game server.
+ The client should already have been connected at this point.
+ Results are return in a .
+
+ The details to use for logging on.
+ No logon details were provided.
+ Username or password are not set within .
+
+
+
+ Logs the client into the Steam3 network as an anonymous game server.
+ The client should already have been connected at this point.
+ Results are returned in a .
+
+ The AppID served by this game server, or 0 for the default.
+
+
+
+ Informs the Steam servers that this client wishes to log off from the network.
+ The Steam server will disconnect the client, and a will be posted.
+
+
+
+
+ Sends the server's status to the Steam network.
+ Results are returned in a callback.
+
+ A object containing the server's status.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for requesting server list details from Steam.
+
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Represents a single server.
+
+
+
+
+ Gets the IP endpoint of the server.
+
+
+
+
+ Gets the number of Steam authenticated players on this server.
+
+
+
+
+ Gets the list of servers.
+
+
+
+
+ Details used when performing a server list query.
+
+
+
+
+ Gets or sets the AppID used when querying servers.
+
+
+
+
+ Gets or sets the filter used for querying the master server.
+ Check https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol for details on how the filter is structured.
+
+
+
+
+ Gets or sets the region that servers will be returned from.
+
+
+
+
+ Gets or sets the IP address that will be GeoIP located.
+ This is done to return servers closer to this location.
+
+
+
+
+ Gets or sets the maximum number of servers to return.
+
+
+
+
+ Requests a list of servers from the Steam game master server.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The details for the request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ 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.
+
+
+
+
+ This callback is fired when this client receives a trade proposal.
+
+
+
+
+ Gets the result.
+
+
+
+
+ Gets the screenshot ID of the newly added screenshot.
+
+
+
+
+ Width of a screenshot thumnail
+
+
+
+
+ Represents the details required to add a screenshot
+
+
+
+
+ Gets or sets the Steam game ID this screenshot belongs to
+
+ The game ID.
+
+
+
+ Gets or sets the UFS image filepath.
+
+ The UFS image filepath.
+
+
+
+ Gets or sets the UFS thumbnail filepath.
+
+ The UFS thumbnail filepath.
+
+
+
+ Gets or sets the screenshot caption
+
+ The screenshot caption.
+
+
+
+ Gets or sets the screenshot privacy
+
+ The screenshot privacy.
+
+
+
+ Gets or sets the screenshot width
+
+ The screenshot width.
+
+
+
+ Gets or sets the screenshot height
+
+ The screenshot height.
+
+
+
+ Gets or sets the creation time
+
+ The creation time.
+
+
+
+ Gets or sets whether or not the screenshot contains spoilers
+
+ Whether or not the screenshot contains spoilers.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Adds a screenshot to the user's screenshot library. The screenshot image and thumbnail must already exist on the UFS.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The details of the screenshot.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ 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.
+
+
+
+
+ This callback is fired when this client receives a trade proposal.
+
+
+
+
+ Gets the Trade ID of his proposal, used for replying.
+
+
+
+
+ Gets the SteamID of the client that sent the proposal.
+
+
+
+
+ This callback is fired when this client receives the response from a trade proposal.
+
+
+
+
+ Gets the Trade ID that this result is for.
+
+
+
+
+ Gets the response of the trade proposal.
+
+
+
+
+ Gets the SteamID of the client that responded to the proposal.
+
+
+
+
+ Gets the number of days Steam Guard is required to have been active on this account.
+
+
+
+
+ Gets the number of days a new device cannot trade for.
+
+
+
+
+ Gets the default number of days one cannot trade for after a password reset.
+
+
+
+
+ Gets the number of days one cannot trade for after a password reset.
+
+
+
+
+ This callback is fired when a trading session has started.
+
+
+
+
+ Gets the SteamID of the client that this the trading session has started with.
+
+
+
+
+ Proposes a trade to another client.
+
+ The client to trade.
+
+
+
+ Responds to a trade proposal.
+
+ The trade id of the received proposal.
+ if set to true, the trade will be accepted.
+
+
+
+ Cancels an already sent trade proposal.
+
+ The user.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for interacting with Steamworks unified messaging
+
+
+
+
+ This callback is returned in response to a service method sent through .
+
+
+
+
+ Gets the result of the message.
+
+
+
+
+ Gets the raw binary response.
+
+
+
+
+ Gets the name of the Service.
+
+
+
+
+ Gets the name of the RPC method.
+
+
+
+
+ Gets the full name of the service method.
+
+
+
+
+ Deserializes the response into a protobuf object.
+
+ Protobuf type of the response message.
+ The response to the message sent through .
+
+
+
+ This callback represents a service notification recieved though .
+
+
+
+
+ Gets the name of the Service.
+
+
+
+
+ Gets the name of the RPC method.
+
+
+
+
+ Gets the full name of the service method.
+
+
+
+
+ Gets the protobuf notification body.
+
+
+
+
+ This wrapper is used for expression-based RPC calls using Steam Unified Messaging.
+
+
+
+
+ Sends a message.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The type of the protobuf object which is the response to the RPC call.
+ RPC call expression, e.g. x => x.SomeMethodCall(message);
+ Whether this message is a notification or not.
+ The JobID of the request. This can be used to find the appropriate .
+
+
+
+ Sends a message.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The type of a protobuf object.
+ Name of the RPC endpoint. Takes the format ServiceName.RpcName
+ The message to send.
+ Whether this message is a notification or not.
+ The JobID of the request. This can be used to find the appropriate .
+
+
+
+ Creates a wrapper for expression-based unified messaging.
+
+ The type of a service interface.
+ The wrapper.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler handles Steam user statistic related actions.
+
+
+
+
+ This callback is fired in response to .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the current number of players according to Steam.
+
+
+
+
+ This callback is fired in response to and .
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Leaderboard ID.
+
+
+
+
+ How many entires there are for requested leaderboard.
+
+
+
+
+ Sort method to use for this leaderboard.
+
+
+
+
+ Display type for this leaderboard.
+
+
+
+
+ This callback is fired in response to .
+
+
+
+
+ Represents a single package in this response.
+
+
+
+
+ Gets the for this entry.
+
+
+
+
+ Gets the global rank for this entry.
+
+
+
+
+ Gets the score for this entry.
+
+
+
+
+ Gets the attached to this entry.
+
+
+
+
+ Extra game-defined information regarding how the user got that score.
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ How many entires there are for requested leaderboard.
+
+
+
+
+ Gets the list of leaderboard entries this response contains.
+
+
+
+
+ Retrieves the number of current players for a given app id.
+ Results are returned in a .
+
+ The app id to request the number of players for.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Asks the Steam back-end for a leaderboard by name for a given appid.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The AppID to request a leaderboard for.
+ Name of the leaderboard to request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Asks the Steam back-end for a leaderboard by name, and will create it if it's not yet.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The AppID to request a leaderboard for.
+ Name of the leaderboard to create.
+ Sort method to use for this leaderboard
+ Display type for this leaderboard.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Asks the Steam back-end for a set of rows in the leaderboard.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The AppID to request leaderboard rows for.
+ ID of the leaderboard to view.
+ The Job ID of the request. This can be used to find the appropriate .
+ Range start or 0.
+ Range end or max leaderboard entries.
+ Type of request.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The instance containing the event data.
+
+
+
+ This handler handles all user log on/log off related actions and callbacks.
+
+
+
+
+ This callback is returned in response to an attempt to log on to the Steam3 network through .
+
+
+
+
+ Gets the result of the logon.
+
+
+
+
+ Gets the extended result of the logon.
+
+
+
+
+ Gets the out of game secs per heartbeat value.
+ This is used internally by SteamKit to initialize heartbeating.
+
+
+
+
+ Gets the in game secs per heartbeat value.
+ This is used internally by SteamKit to initialize heartbeating.
+
+
+
+
+ Gets or sets the public IP of the client
+
+
+
+
+ Gets the Steam3 server time.
+
+
+
+
+ Gets the account flags assigned by the server.
+
+
+
+
+ Gets the client steam ID.
+
+
+
+
+ Gets the email domain.
+
+
+
+
+ Gets the Steam2 CellID.
+
+
+
+
+ Gets the Steam2 CellID ping threshold.
+
+
+
+
+ Gets the Steam2 ticket.
+ This is used for authenticated content downloads in Steam2.
+ This field will only be set when has been set to true.
+
+
+
+
+ Gets a value indicating whether the client should use PICS.
+
+
+
+
+ Gets the WebAPI authentication user nonce.
+
+
+
+
+ Gets the IP country code.
+
+
+
+
+ Gets the vanity URL.
+
+
+
+
+ Gets the threshold for login failures before Steam wants the client to migrate to a new CM.
+
+
+
+
+ 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.
+
+
+
+
+ Gets the result of the log off.
+
+ The result.
+
+
+
+ This callback is returned some time after logging onto the network.
+
+
+
+
+ Gets the login key.
+
+ The login key.
+
+
+
+ Gets the unique ID.
+
+ The unique ID.
+
+
+
+ This callback is fired when the client recieves it's unique Steam3 session token. This token is used for authenticated content downloading in Steam2.
+
+
+
+
+ Gets the Steam3 session token used for authenticating to various other services.
+
+
+
+
+ This callback is received when account information is recieved from the network.
+ This generally happens after logon.
+
+
+
+
+ Gets the last recorded persona name used by this account.
+
+
+
+
+ Gets the country this account is connected from.
+
+
+
+
+ Gets the count of SteamGuard authenticated computers.
+
+
+
+
+ Gets the account flags for this account.
+
+
+
+
+ Gets the facebook ID of this account if it is linked with facebook.
+
+
+
+
+ Gets the facebook name if this account is linked with facebook.
+
+
+
+
+ This callback is received when wallet info is recieved from the network.
+
+
+
+
+ Gets a value indicating whether this instance has wallet data.
+
+
+ true if this instance has wallet data; otherwise, false.
+
+
+
+
+ Gets the currency code for this wallet.
+
+
+
+
+ Gets the balance of the wallet as a 32-bit integer, in cents.
+
+
+
+
+ Gets the balance of the wallet as a 64-bit integer, in cents.
+
+
+
+
+ This callback is received when the backend wants the client to update it's local machine authentication data.
+
+
+
+
+ Represents various one-time-password details.
+
+
+
+
+ Gets the OTP type.
+
+
+
+
+ Gets the OTP identifier.
+
+
+
+
+ Gets the OTP shared secret.
+
+
+
+
+ Gets the OTP time drift.
+
+
+
+
+ Implicitly converts into .
+
+ The details to convert.
+
+
+
+
+ Gets the sentry file data that should be written.
+
+
+
+
+ Gets the number of bytes to write.
+
+
+
+
+ Gets the offset to write to.
+
+
+
+
+ Gets the name of the sentry file to write.
+
+
+
+
+ Gets the one-time-password details.
+
+
+
+
+ This callback is received when requesting a new WebAPI authentication user nonce.
+
+
+
+
+ Gets the result of the request.
+
+
+
+
+ Gets the authentication nonce.
+
+
+
+
+ This callback is fired when the client receives a marketing message update.
+
+
+
+
+ Represents a single marketing message.
+
+
+
+
+ Gets the unique identifier for this marketing message.
+
+
+
+
+ Gets the URL for this marketing message.
+
+
+
+
+ Gets the marketing message flags.
+
+
+
+
+ Gets the time of this marketing message update.
+
+
+
+
+ Gets the messages.
+
+
+
+
+ Represents the details required to log into Steam3 as a user.
+
+
+
+
+ Gets or sets the username.
+
+ The username.
+
+
+
+ Gets or sets the password.
+
+ The password.
+
+
+
+ Gets or sets the CellID.
+
+ The CellID.
+
+
+
+ Gets or sets the LoginID. This number is used for identifying logon session.
+ The purpose of this field is to allow multiple sessions to the same steam account from the same machine.
+ This is because Steam Network doesn't allow more than one session with the same LoginID to access given account at the same time from the same public IP.
+ If you want to establish more than one active session to given account, you must make sure that every session (to that account) from the same public IP has a unique LoginID.
+ By default LoginID is automatically generated based on machine's primary bind address, which is the same for all sessions.
+ Null value will cause this property to be automatically generated based on default behaviour.
+ If in doubt, set this property to null.
+
+ The LoginID.
+
+
+
+ Gets or sets the Steam Guard auth code used to login. This is the code sent to the user's email.
+
+ The auth code.
+
+
+
+ Gets or sets the 2-factor auth code used to login. This is the code that can be received from the authenticator apps.
+
+ The two factor auth code.
+
+
+
+ Gets or sets the login key used to login. This is a key that has been recieved in a previous Steam sesson by a .
+
+ The login key.
+
+
+
+ Gets or sets the 'Should Remember Password' flag. This is used in combination with the login key and for password-less login.
+
+ The 'Should Remember Password' flag.
+
+
+
+ Gets or sets the sentry file hash for this logon attempt, or null if no sentry file is available.
+
+ The sentry file hash.
+
+
+
+ Gets or sets the account instance. 1 for the PC instance or 2 for the Console (PS3) instance.
+
+ The account instance.
+
+
+
+
+
+ Gets or sets the account ID used for connecting clients when using the Console instance.
+
+
+ The account ID.
+
+
+
+
+
+ Gets or sets a value indicating whether to request the Steam2 ticket.
+ This is an optional request only needed for Steam2 content downloads.
+
+
+ true if the Steam2 ticket should be requested; otherwise, false.
+
+
+
+
+ Gets or sets the client operating system type.
+
+ The client operating system type.
+
+
+
+ Gets or sets the client language.
+
+ The client language.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents the details required to log into Steam3 as an anonymous user.
+
+
+
+
+ Gets or sets the CellID.
+
+ The CellID.
+
+
+
+ Gets or sets the client operating system type.
+
+ The client operating system type.
+
+
+
+ Gets or sets the client language.
+
+ The client language.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents details required to complete a machine auth request.
+
+
+
+
+ The One-Time-Password details for this response.
+
+
+
+
+ Gets or sets the one-time-password type.
+
+
+
+
+ Gets or sets the one-time-password identifier.
+
+
+
+
+ Gets or sets the one-time-password value.
+
+
+
+
+ Gets or sets the target Job ID for the request.
+ This is provided in the for a .
+
+ The Job ID.
+
+
+
+ Gets or sets the result of updating the machine auth.
+
+ The result.
+
+
+
+ Gets or sets the number of bytes written for the sentry file.
+
+ The number of bytes written.
+
+
+
+ Gets or sets the offset within the sentry file that was written.
+
+ The offset.
+
+
+
+ Gets or sets the filename of the sentry file that was written.
+
+ The name of the sentry file.
+
+
+
+ Gets or sets the size of the sentry file.
+
+ / The size of the sentry file.
+
+
+
+ Gets or sets the last error that occurred while writing the sentry file, or 0 if no error occurred.
+
+ The last error.
+
+
+
+ Gets or sets the SHA-1 hash of the sentry file.
+
+ The sentry file hash.
+
+
+
+ Gets or sets the one-time-password details.
+
+ The one time password details.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the SteamID of this client. This value is assigned after a logon attempt has succeeded.
+
+ The SteamID.
+
+
+
+ Logs the client into the Steam3 network.
+ The client should already have been connected at this point.
+ Results are returned in a .
+
+ The details to use for logging on.
+ No logon details were provided.
+ Username or password are not set within .
+
+
+
+ Logs the client into the Steam3 network as an anonymous user.
+ The client should already have been connected at this point.
+ Results are returned in a .
+
+
+
+
+ Logs the client into the Steam3 network as an anonymous user.
+ The client should already have been connected at this point.
+ Results are returned in a .
+
+ The details to use for logging on.
+
+
+
+ Informs the Steam servers that this client wishes to log off from the network.
+ The Steam server will disconnect the client, and a will be posted.
+
+
+
+
+ Sends a machine auth response.
+ This should normally be used in response to a .
+
+ The details pertaining to the response.
+
+
+
+ Requests a new WebAPI authentication user nonce.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Accepts the new Login Key provided by a .
+
+ The callback containing the new Login Key.
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ This handler is used for requesting files published on the Steam Workshop.
+
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Represents the details of a single published file.
+
+
+
+
+ Gets the file ID.
+
+
+
+
+ Gets the number of reports for this file.
+
+
+
+
+ Gets the score of this file, based on up and down votes.
+
+
+
+
+ Gets the total count of up votes.
+
+
+
+
+ Gets the total count of down votes.
+
+
+
+
+ Gets the result.
+
+
+
+
+ Gets the list of enumerated files.
+
+
+
+
+ Gets the count of total results.
+
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Represents the details of a single published file.
+
+
+
+
+ Gets the file ID.
+
+
+
+
+ Gets the result.
+
+
+
+
+ Gets the list of enumerated files.
+
+
+
+
+ Gets the count of total results.
+
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Represents the details of a single published file.
+
+
+
+
+ Gets the file ID.
+
+
+
+
+ Gets the time this file was subscribed to.
+
+
+
+
+ Gets the result.
+
+
+
+
+ Gets the list of enumerated files.
+
+
+
+
+ Gets the count of total results.
+
+
+
+
+ This callback is received in response to calling .
+
+
+
+
+ Represents the details of a single published file.
+
+
+
+
+ Gets the file ID.
+
+
+
+
+ Gets the timestamp of this file.
+
+
+
+
+ Gets the result.
+
+
+
+
+ Gets the list of enumerated files.
+
+
+
+
+ Gets the count of total results.
+
+
+
+
+ Represents the details of an enumeration request used for the local user's files.
+
+
+
+
+ Gets or sets the AppID of the workshop to enumerate.
+
+
+ The AppID.
+
+
+
+
+ Gets or sets the sort order.
+ This value is only used by .
+
+
+ The sort order.
+
+
+
+
+ Gets or sets the start index.
+
+
+ The start index.
+
+
+
+
+ Gets or sets the user action to filter by.
+ This value is only used by .
+
+
+ The user action.
+
+
+
+
+ Enumerates the list of published files for the current logged in user.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The specific details of the request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Enumerates the list of subscribed files for the current logged in user.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The specific details of the request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Enumerates the list of published files for the current logged in user based on user action.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The specific details of the request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Represents the details of an enumeration request for all published files.
+
+
+
+
+ Gets or sets the AppID of the workshop to enumerate.
+
+
+ The AppID.
+
+
+
+
+ Gets or sets the type of the enumeration.
+
+
+ The type.
+
+
+
+
+ Gets or sets the start index.
+
+
+ The start index.
+
+
+
+
+ Gets or sets the days.
+
+
+ The days.
+
+
+
+
+ Gets or sets the number of results to return.
+
+
+ The number of results.
+
+
+
+
+ Gets the list of tags to enumerate.
+
+
+
+
+ Gets the list of user tags to enumerate.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Enumerates the list of all published files on the Steam workshop.
+ Results are returned in a .
+ The returned can also be awaited to retrieve the callback result.
+
+ The specific details of the request.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Handles a client message. This should not be called directly.
+
+ The packet message that contains the data.
+
+
+
+ Tracks a job with this manager.
+
+ The asynchronous job to track.
+
+
+
+ Passes a callback to a pending async job.
+ If the given callback completes the job, the job is removed from this manager.
+
+ The JobID.
+ The callback.
+
+
+
+ Extends the lifetime of a job.
+
+ The job identifier.
+
+
+
+ Marks a certain job as remotely failed.
+
+ The job identifier.
+
+
+
+ Cancels and clears all jobs being tracked.
+
+
+
+
+ Enables or disables periodic checks for job timeouts.
+
+ Whether or not job timeout checks should be enabled.
+
+
+
+ This is called periodically to cancel and clear out any jobs that have timed out (no response from Steam).
+
+
+
+
+ Retrieves a job from this manager, and optionally removes it from tracking.
+
+ The JobID.
+ If set to true, this job is removed from tracking.
+
+
+
+
+ Thrown when Steam encounters a remote error with a pending .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ This class is a utility for routing callbacks to function calls.
+ In order to bind callbacks to functions, an instance of this class must be created for the
+ instance that will be posting callbacks.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to handle the callbacks of.
+
+
+
+ Runs a single queued callback.
+ If no callback is queued, this method will instantly return.
+
+
+
+
+ Blocks the current thread to run a single queued callback.
+ If no callback is queued, the method will block for the given timeout.
+
+ The length of time to block.
+
+
+
+ Blocks the current thread to run all queued callbacks.
+ If no callback is queued, the method will block for the given timeout.
+
+ The length of time to block.
+
+
+
+ Blocks the current thread to run a single queued callback.
+ If no callback is queued, the method will block until one is posted.
+
+
+
+
+ Registers the provided to receive callbacks of type .
+
+ The of the callbacks that should be subscribed to.
+ If this is , all callbacks of type will be recieved.
+ The function to invoke with the callback.
+ The type of callback to subscribe to.
+ An . Disposing of the return value will unsubscribe the .
+
+
+
+ Registers the provided to receive callbacks of type .
+
+ The function to invoke with the callback.
+ An . Disposing of the return value will unsubscribe the .
+
+
+
+ A callback message
+
+
+
+
+ The that this callback is associated with. If there is no job associated,
+ then this will be
+
+
+
+
+ Represents the base object all callbacks are based off.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the job ID this callback refers to. If it is not a job callback, it will be .
+
+
+
+
+ Represents a single client that connects to the Steam3 network.
+ This class is also responsible for handling the registration of client message handlers and callbacks.
+
+
+
+
+ This callback is received after attempting to connect to the Steam network.
+
+
+
+
+ This callback is received when the steamclient is physically disconnected from the Steam network.
+
+
+
+
+ If true, the disconnection was initiated by calling .
+ If false, the disconnection was the cause of something not user-controlled, such as a network failure or
+ a forcible disconnection by the remote server.
+
+
+
+
+ This callback is received when the client has received the CM list from Steam.
+
+
+
+
+ Gets the CM server list.
+
+
+
+
+ This callback is fired when the client receives a list of all publically available Steam3 servers.
+ This callback may be fired multiple times for different server lists.
+
+
+
+
+ Gets the server list.
+
+
+
+
+ Initializes a new instance of the class with the default configuration.
+
+
+
+
+ Initializes a new instance of the class with a specific configuration.
+
+ The configuration to use for this client.
+ The configuration object is null
+
+
+
+ Adds a new handler to the internal list of message handlers.
+
+ The handler to add.
+ A handler of that type is already registered.
+
+
+
+ Removes a registered handler by name.
+
+ The handler name to remove.
+
+
+
+ Removes a registered handler.
+
+ The handler to remove.
+
+
+
+ Returns a registered handler.
+
+ The type of the handler to cast to. Must derive from ClientMsgHandler.
+
+ A registered handler on success, or null if the handler could not be found.
+
+
+
+
+ Gets the next callback object in the queue.
+ This function does not dequeue the callback, you must call FreeLastCallback after processing it.
+
+ The next callback in the queue, or null if no callback is waiting.
+
+
+
+ Gets the next callback object in the queue, and optionally frees it.
+
+ if set to true this function also frees the last callback if one existed.
+ The next callback in the queue, or null if no callback is waiting.
+
+
+
+ Blocks the calling thread until a callback object is posted to the queue.
+ This function does not dequeue the callback, you must call FreeLastCallback after processing it.
+
+ The callback object from the queue.
+
+
+
+ Blocks the calling thread until a callback object is posted to the queue, or null after the timeout has elapsed.
+ This function does not dequeue the callback, you must call FreeLastCallback after processing it.
+
+ The length of time to block.
+ A callback object from the queue if a callback has been posted, or null if the timeout has elapsed.
+
+
+
+ Blocks the calling thread until a callback object is posted to the queue, and optionally frees it.
+
+ if set to true this function also frees the last callback.
+ The callback object from the queue.
+
+
+
+ Blocks the calling thread until a callback object is posted to the queue, and optionally frees it.
+
+ if set to true this function also frees the last callback.
+ The length of time to block.
+ A callback object from the queue if a callback has been posted, or null if the timeout has elapsed.
+
+
+
+ Blocks the calling thread until the queue contains a callback object. Returns all callbacks, and optionally frees them.
+
+ if set to true this function also frees all callbacks.
+ The length of time to block.
+ All current callback objects in the queue.
+
+
+
+ Frees the last callback in the queue.
+
+
+
+
+ Posts a callback to the queue. This is normally used directly by client message handlers.
+
+ The message.
+
+
+
+ Returns the next available JobID for job based messages.
+ This function is thread-safe.
+
+ The next available JobID.
+
+
+
+ Called when a client message is received from the network.
+
+ The packet message.
+
+
+
+ Called when the client is securely connected to Steam3.
+
+
+
+
+ Called when the client is physically disconnected from Steam3.
+
+
+
+
+ Interface to configure a before it is created.
+ A reference to the underlying object should not be live beyond the configurator function's scope.
+
+
+
+
+ Configures this for a particular Steam cell.
+
+ The Steam Cell ID to prioritize when connecting.
+ A builder with modified configuration.
+
+
+
+ Configures this with a connection timeout.
+
+ The connection timeout used when connecting to Steam serves.
+ A builder with modified configuration.
+
+
+
+ Configures this with the default s to request from Steam.
+
+ The default persona state flags used when requesting information for a new friend, or
+ when calling SteamFriends.RequestFriendInfo without specifying flags.
+ A builder with modified configuration.
+
+
+
+ Configures this to discover available servers.
+
+ Whether or not to use the Steam Directory to discover available servers.
+ A builder with modified configuration.
+
+
+
+ Configures this with custom HTTP behaviour.
+
+ A function to create and configure a new HttpClient.
+ A builder with modified configuration.
+
+
+
+ Configures how this will be used to connect to Steam.
+
+ The supported protocol types to use when attempting to connect to Steam.
+ A builder with modified configuration.
+
+
+
+ Configures the server list provider for this .
+
+ The server list provider to use..
+ A builder with modified configuration.
+
+
+
+ Configures the Universe that this belongs to.
+
+ The Universe to connect to. This should always be unless
+ you work at Valve and are using this internally. If this is you, hello there.
+ A builder with modified configuration.
+
+
+
+ Configures the Steam Web API address for this .
+
+ The base address of the Steam Web API to connect to.
+ Use of "partner.steam-api.com" requires a Partner API Key.
+ A builder with modified configuration.
+
+
+
+ Configures this with a Web API key to attach to requests.
+
+ An API key to be used for authorized requests.
+ Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.
+ A builder with modified configuration.
+
+
+
+ Factory function to create a user-configured HttpClient.
+ The HttpClient will be disposed of after use.
+
+ A new to be used to send HTTP requests.
+
+
+
+ Configuration object to use.
+ This object should not be mutated after it is passed to one or more objects.
+
+
+
+
+ Do not use directly - create a SteamConfiguration object by using a builder or helper method.
+
+
+
+
+ Creates a , allowing for configuration.
+
+ A method which is used to configure the configuration.
+ A configuration object.
+
+
+
+ Whether or not to use the Steam Directory to discover available servers.
+
+
+
+
+ The Steam Cell ID to prioritize when connecting.
+
+
+
+
+ The connection timeout used when connecting to Steam serves.
+
+
+
+
+ The default persona state flags used when requesting information for a new friend, or
+ when calling SteamFriends.RequestFriendInfo without specifying flags.
+
+
+
+
+ Factory function to create a user-configured HttpClient.
+
+
+
+
+ The supported protocol types to use when attempting to connect to Steam.
+
+
+
+
+ The server list provider to use.
+
+
+
+
+ The Universe to connect to. This should always be unless
+ you work at Valve and are using this internally. If this is you, hello there.
+
+
+
+
+ The base address of the Steam Web API to connect to.
+ Use of "partner.steam-api.com" requires a Partner API key.
+
+
+
+
+ An API key to be used for authorized requests.
+ Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.
+
+
+
+
+ The server list used for this configuration.
+ If this configuration is used by multiple instances, they all share the server list.
+
+
+
+
+ Represents a single client that connects to a UFS server.
+
+
+
+
+ This callback is received after attempting to connect to the UFS server.
+
+
+
+
+ This callback is received when the client is physically disconnected from the UFS server.
+
+
+
+
+ If true, the disconnection was initiated by calling .
+ If false, the disconnection was the cause of something not user-controlled, such as a network failure or
+ a forcible disconnection by the remote server.
+
+
+
+
+ This callback is returned in response to an attempt to log on to the UFS server through .
+
+
+
+
+ Gets the result of the logon
+
+
+
+
+ This callback is returned in response to a request to upload a file through .
+
+
+
+
+ Gets the result of the upload request
+
+
+
+
+ Gets whether or not the file upload should proceed over HTTP
+
+
+
+
+ Gets whether or not the file upload should proceed over HTTPS
+
+
+
+
+ Gets whether or not the file should be encrypted during upload
+
+
+
+
+ Gets the SHA hash of the file to be uploaded
+
+
+
+
+ Gets the JobID on the UFS server.
+
+
+
+
+ This callback is returned when a file upload through is completed.
+
+
+
+
+ Gets the result of the file upload
+
+
+
+
+ Gets the SHA hash of the file that was uploaded
+
+
+
+
+ Gets the connected universe of this client.
+ This value will be if the client is not connected to Steam.
+
+ The universe.
+
+
+
+ Gets a value indicating whether this instance is connected to the remote UFS server.
+
+
+ true if this instance is connected; otherwise, false.
+
+
+
+
+ Gets or sets the connection timeout used when connecting to the UFS server.
+ The default value is 5 seconds.
+
+
+ The connection timeout.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The parent instance that the UFS connection is for.
+ Callbacks will also be posted through this instance.
+
+
+
+
+ Connects this client to a UFS server.
+ This begins the process of connecting and encrypting the data channel between the client and the UFS server.
+ Results are returned asynchronously in a .
+ If the UFS server that this client attempts to connect to is down, a will be posted instead.
+ will not attempt to reconnect to Steam, you must handle this callback and call again, preferrably after a short delay.
+ In order to connect to the UFS server, the parent must be connected to the CM server.
+
+
+ The of the UFS server to connect to.
+ If null, will randomly select a UFS server from the 's list of servers.
+
+
+
+
+ Disconnects this client from the UFS server.
+ a will be posted upon disconnection.
+
+
+
+
+ Represents all the information required to upload a file to the UFS server.
+
+
+
+
+ Gets or sets the AppID this upload request is for.
+
+
+ The AppID.
+
+
+
+
+ Gets or sets the remote name of the file that is being uploaded.
+
+
+ The name of the file.
+
+
+
+
+ Gets or sets the physical file data for this upload.
+
+
+ The file data.
+
+
+
+
+ Gets or sets the JobID of this file upload. This value should be assigned from .
+
+
+ The job ID.
+
+
+
+
+ Attempt to logon to the UFS and authorize the client for the given AppIDs.
+ The should be connected before this point.
+ Results are returned in a .
+
+ The AppIDs to authorize when connecting to the UFS.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Begins a request to upload a file to the UFS.
+ The should be logged on before this point.
+ Results are returned in a .
+
+ The details to use for uploading the file.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Uploads the actual contents of a file to the UFS.
+ The should be logged on before this point, and the previous request to upload a file must have completed successfully.
+ Results are returned in a .
+
+ The details to use for uploading the file.
+ The Job ID of the request. This can be used to find the appropriate .
+
+
+
+ Sends the specified client message to the UFS server.
+ This method will automatically assign the correct of the message, as given by the parent .
+
+ 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.
+
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The configuration to use for this Web API interface.
+ The interface to retrieve a handler for.
+ A dynamic object to interact with the Web API.
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The configuration to use for this Web API interface.
+ The interface to retrieve a handler for.
+ A dynamic object to interact with the Web API.
+
+
+
+ Helper class to load servers from the Steam Directory Web API.
+
+
+
+
+ Load a list of servers from the Steam Directory.
+
+ Configuration Object
+ A with the Result set to an enumerable list of s.
+
+
+
+ Load a list of servers from the Steam Directory.
+
+ Configuration Object
+ Cancellation Token
+ A with the Result set to an enumerable list of s.
+
+
+
+ Load a list of servers from the Steam Directory.
+
+ Configuration Object
+ Max number of servers to return. The API will typically return this number per server type (socket and websocket).
+ Cancellation Token
+ A with the Result set to an enumerable list of s.
+
+
+
+ Utility class for interacting with the Steam Web API.
+
+
+
+
+ The default base address used for the Steam Web API.
+ A different base address can be specified in a object, or
+ as a function argument where overloads are available.
+
+
+
+
+ Represents a single interface that exists within the Web API.
+ This is a dynamic object that allows function calls to interfaces with minimal code.
+
+
+
+
+ Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI.
+
+
+ The timeout value in milliseconds. The default value is 100 seconds.
+
+
+
+
+ Manually calls the specified Web API function with the provided details.
+
+ The function name to call.
+ The version of the function to call.
+ A dictionary of string key value pairs representing arguments to be passed to the API.
+ A object representing the results of the Web API call.
+ The function name or request method provided were null.
+ An network error occurred when performing the request.
+ 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.
+
+ The function name to call.
+ The version of the function to call.
+ A dictionary of string key value pairs representing arguments to be passed to the API.
+ The http request method. Either "POST" or "GET".
+ A object representing the results of the Web API call.
+ The function name or request method provided were null.
+ An network error occurred when performing the request.
+ A network error occurred when performing the request.
+ An error occured when parsing the response from the WebAPI.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Provides the implementation for operations that invoke a member.
+ Classes derived from the class can
+ override this method to specify dynamic behavior for operations such as calling a method.
+ This method should not be called directly, it is called through dynamic method calls.
+
+
+ Provides information about the dynamic operation.
+ The binder.Name property provides the name of the member on which the dynamic operation is performed.
+ For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the
+ class derived from the class, binder.Name returns "SampleMethod".
+ The binder.IgnoreCase property specifies whether the member name is case-sensitive.
+
+
+ The arguments that are passed to the object member during the invoke operation. For example,
+ for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the
+ class, the first argument to is equal to 100.
+
+ The result of the member invocation.
+
+ true if the operation is successful; otherwise, false. If this method returns false, the run-time
+ binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.)
+
+
+ Dynamic method is called with non-named argument.
+ All parameters must be passed as name arguments to API calls.
+ - or -
+ The dynamic method name was not in the correct format.
+ All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number.
+
+
+ The function version number specified was out of range.
+
+
+
+
+ Represents a single interface that exists within the Web API.
+ This is a dynamic object that allows function calls to interfaces with minimal code.
+ This version of the class makes use of TPL Tasks to provide an asynchronous API.
+
+
+
+
+ Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI.
+
+
+ The timeout value in milliseconds. The default value is 100 seconds.
+
+
+
+
+ Manually calls the specified Web API function with the provided details.
+
+ The function name to call.
+ The version of the function to call.
+ A dictionary of string key value pairs representing arguments to be passed to the API.
+ The http request method. Either "POST" or "GET".
+ A that contains a object representing the results of the Web API call.
+ The function name or request method provided were null.
+ An network error occurred when performing the request.
+ A network error occurred when performing the request.
+ An error occured when parsing the response from the WebAPI.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Provides the implementation for operations that invoke a member.
+ Classes derived from the class can
+ override this method to specify dynamic behavior for operations such as calling a method.
+ This method should not be called directly, it is called through dynamic method calls.
+
+
+ Provides information about the dynamic operation.
+ The binder.Name property provides the name of the member on which the dynamic operation is performed.
+ For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the
+ class derived from the class, binder.Name returns "SampleMethod".
+ The binder.IgnoreCase property specifies whether the member name is case-sensitive.
+
+
+ The arguments that are passed to the object member during the invoke operation. For example,
+ for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the
+ class, the first argument to is equal to 100.
+
+ The result of the member invocation.
+
+ true if the operation is successful; otherwise, false. If this method returns false, the run-time
+ binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.)
+
+
+ Dynamic method is called with non-named argument.
+ All parameters must be passed as name arguments to API calls.
+ - or -
+ The dynamic method name was not in the correct format.
+ All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number.
+
+
+ The function version number specified was out of range.
+
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The base of the Steam Web API.
+ The interface to retrieve a handler for.
+ An optional API key to be used for authorized requests.
+ A dynamic object to interact with the Web API.
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The interface to retrieve a handler for.
+ An optional API key to be used for authorized requests.
+ A dynamic object to interact with the Web API.
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The interface to retrieve a handler for.
+ An optional API key to be used for authorized requests.
+ A dynamic object to interact with the Web API.
+
+
+
+ Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
+
+ The base of the Steam Web API.
+ The interface to retrieve a handler for.
+ An optional API key to be used for authorized requests.
+ A dynamic object to interact with the Web API.
+
+
+
+ Thrown when WebAPI request fails.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ HTTP response message including the status code and data.
+
+
+
+ Represents a Steam3 depot manifest.
+
+
+
+
+ Represents a single chunk within a file.
+
+
+
+
+ Gets or sets the SHA-1 hash chunk id.
+
+
+
+
+ Gets or sets the expected Adler32 checksum of this chunk.
+
+
+
+
+ Gets or sets the chunk offset.
+
+
+
+
+ Gets or sets the compressed length of this chunk.
+
+
+
+
+ Gets or sets the decompressed length of this chunk.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a single file within a manifest.
+
+
+
+
+ Gets the name of the file.
+
+
+
+
+ Gets the chunks that this file is composed of.
+
+
+
+
+ Gets the file flags
+
+
+
+
+ Gets the total size of this file.
+
+
+
+
+ Gets the hash of this file.
+
+
+
+
+ Gets the list of files within this manifest.
+
+
+
+
+ Gets a value indicating whether filenames within this depot are encrypted.
+
+
+ true if the filenames are encrypted; otherwise, false.
+
+
+
+
+ Gets the depot id.
+
+
+
+
+ Gets the manifest id.
+
+
+
+
+ Gets the depot creation time.
+
+
+
+
+ Gets the total uncompressed size of all files in this depot.
+
+
+
+
+ Gets the total compressed size of all files in this depot.
+
+
+
+
+ Attempts to decrypts file names with the given encryption key.
+
+ The encryption key.
+ true if the file names were successfully decrypted; otherwise, false.
+
+
+
+ This 64bit structure represents an app, mod, shortcut, or p2p file on the Steam network.
+
+
+
+
+ Represents various types of games.
+
+
+
+
+ A Steam application.
+
+
+
+
+ A game modification.
+
+
+
+
+ A shortcut to a program.
+
+
+
+
+ A peer-to-peer file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The 64bit integer to assign this GameID from.
+
+
+
+ Initializes a new instance of the class.
+
+ The 32bit app id to assign this GameID from.
+
+
+
+ Initializes a new instance of the class.
+
+ The base app id of the mod.
+ The game folder name of the mod.
+
+
+
+ Initializes a new instance of the class.
+
+ The path to the executable, usually quoted.
+ The name of the application shortcut.
+
+
+
+ Sets the various components of this GameID from a 64bit integer form.
+
+ The 64bit integer to assign this GameID from.
+
+
+
+ Converts this GameID into it's 64bit integer form.
+
+ A 64bit integer representing this GameID.
+
+
+
+ Performs an implicit conversion from to .
+
+ The GameID to convert..
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The GameId to convert.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The 64bit integer representing a GameID to convert.
+
+ The result of the conversion.
+
+
+
+
+ Gets or sets the app id.
+
+
+ The app IDid
+
+
+
+
+ Gets or sets the type of the app.
+
+
+ The type of the app.
+
+
+
+
+ Gets or sets the mod id.
+
+
+ The mod ID.
+
+
+
+
+ Gets a value indicating whether this instance is a mod.
+
+
+ true if this instance is a mod; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a shortcut.
+
+
+ true if this instance is a shortcut; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a peer-to-peer file.
+
+
+ true if this instance is a p2p file; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a steam app.
+
+
+ true if this instance is a steam app; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Implements the operator ==.
+
+ The left side GameID.
+ The right side GameID.
+
+ The result of the operator.
+
+
+
+
+ Implements the operator !=.
+
+ The left side GameID.
+ The right side GameID.
+
+ The result of the operator.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Represents a globally unique identifier within the Steam network.
+ Guaranteed to be unique across all racks and servers for a given Steam universe.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The GID value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The gid.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The gid.
+
+ The result of the conversion.
+
+
+
+
+ Gets or sets the sequential count for this GID.
+
+
+ The sequential count.
+
+
+
+
+ Gets or sets the start time of the server that generated this GID.
+
+
+ The start time.
+
+
+
+
+ Gets or sets the process ID of the server that generated this GID.
+
+
+ The process ID.
+
+
+
+
+ Gets or sets the box ID of the server that generated this GID.
+
+
+ The box ID.
+
+
+
+
+ Gets or sets the entire 64bit value of this GID.
+
+
+ The value.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Implements the operator ==.
+
+ The left side GID.
+ The right side GID.
+
+ The result of the operator.
+
+
+
+
+ Implements the operator !=.
+
+ The left side GID.
+ The right side GID.
+
+ The result of the operator.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Represents a single unique handle to a piece of User Generated Content.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The UGC ID.
+
+
+
+ Performs an implicit conversion from to .
+
+ The UGC handle.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The UGC ID.
+
+ The result of the conversion.
+
+
+
+
+ Represents an identifier of a network task known as a job.
+
+
+
+
+ Represents an invalid JobID.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The Job ID to initialize this instance with.
+
+
+
+ Performs an implicit conversion from to .
+
+ The Job ID.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The Job ID.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The asynchronous job.
+
+ The result of the conversion.
+
+
+
+
+ The base class for awaitable versions of a .
+ Should not be used or constructed directly, but rather with .
+
+
+
+
+ Gets the for this job.
+
+
+
+
+ Gets or sets the period of time before this job will be considered timed out and will be canceled. By default this is 10 seconds.
+
+
+
+
+ Adds a callback to the async job's result set.
+
+ The callback.
+ true if this result completes the set; otherwise, false.
+
+
+
+ Sets this job as failed, either remotely or due to a message timeout.
+
+
+ If set to true this job is marked as failed because Steam informed us of a job failure;
+ otherwise, this job has failed due to a message timeout.
+
+
+
+
+ Marks this job as having received a heartbeat and extends the job's timeout.
+
+
+
+
+ Represents an awaitable version of a .
+ Can either be converted to a TPL with or can be awaited directly.
+
+ The callback type that will be returned by this async job.
+
+
+
+ Initializes a new instance of the class.
+
+ The that this job will be associated with.
+ The Job ID value associated with this async job.
+
+
+
+ Converts this instance into a TPL .
+
+
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler use rather than use directly in code.
+
+
+
+ Adds a callback to the async job's result set. For an , this always completes the set.
+
+ The callback.
+ Always true.
+
+
+
+ Sets this job as failed, either remotely or due to a message timeout.
+
+
+ If set to true this job is marked as failed because Steam informed us of a job failure;
+ otherwise, this job has failed due to a message timeout.
+
+
+
+
+ Represents an awaitable version of a .
+ Can either be converted to a TPL with or can be awaited directly.
+ This type of async job can contain multiple callback results.
+
+ The callback type that will be returned by this async job.
+
+
+
+ The set of callback results for an .
+
+
+
+
+ Gets a value indicating whether this is complete and contains every result sent by Steam.
+
+
+
+
+ Gets a value indicating whether the parent received an incomplete result set and then encountered a remote failure.
+
+
+
+
+ Gets a read only collection of callback results for this async job.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that this job will be associated with.
+ The Job ID value associated with this async job.
+ The condition that must be fulfilled for the result set to be considered complete.
+
+
+
+ Converts this instance into a TPL .
+
+
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler use rather than use directly in code.
+
+
+
+ Adds a callback to the async job's result set.
+
+ The callback.
+ true if this result completes the set; otherwise, false.
+
+
+
+ Sets this job as failed, either remotely or due to a message timeout.
+
+
+ If set to true this job is marked as failed because Steam informed us of a job failure;
+ otherwise, this job has failed due to a message timeout.
+
+
+
+
+ Represents a recursive string key to arbitrary value container.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The optional name of the root key.
+ The optional value assigned to the root key.
+
+
+
+ Represents an invalid given when a searched for child does not exist.
+
+
+
+
+ Gets or sets the name of this instance.
+
+
+
+
+ Gets or sets the value of this instance.
+
+
+
+
+ Gets the children of this instance.
+
+
+
+
+ Gets or sets the child with the specified key.
+ When retrieving by key, if no child with the given key exists, is returned.
+
+
+
+
+ Returns the value of this instance as a string.
+
+ The value of this instance as a string.
+
+
+
+ Attempts to convert and return the value of this instance as an unsigned byte.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an unsigned byte.
+
+
+
+ Attempts to convert and return the value of this instance as an unsigned short.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an unsigned short.
+
+
+
+ Attempts to convert and return the value of this instance as an integer.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an integer.
+
+
+
+ Attempts to convert and return the value of this instance as an unsigned integer.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an unsigned integer.
+
+
+
+ Attempts to convert and return the value of this instance as a long.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as a long.
+
+
+
+ Attempts to convert and return the value of this instance as an unsigned long.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an unsigned long.
+
+
+
+ Attempts to convert and return the value of this instance as a float.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as a float.
+
+
+
+ Attempts to convert and return the value of this instance as a boolean.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as a boolean.
+
+
+
+ Attempts to convert and return the value of this instance as an enum.
+ If the conversion is invalid, the default value is returned.
+
+ The default value to return if the conversion is invalid.
+ The value of this instance as an enum.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Attempts to load the given filename as a text .
+
+ The path to the file to load.
+ a instance if the load was successful, or null on failure.
+
+ This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions.
+
+
+
+
+ Attempts to load the given filename as a binary .
+
+ The path to the file to load.
+ The resulting object if the load was successful, or null if unsuccessful.
+ true if the load was successful, or false on failure.
+
+
+
+ Attempts to create an instance of from the given input text.
+
+ The input text to load.
+ a instance if the load was successful, or null on failure.
+
+ This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions.
+
+
+
+
+ Populate this instance from the given as a text .
+
+ The input to read from.
+ true if the read was successful; otherwise, false.
+
+
+
+ Opens and reads the given filename as text.
+
+
+ The file to open and read.
+ true if the read was successful; otherwise, false.
+
+
+
+ Saves this instance to file.
+
+ The file path to save to.
+ If set to true, saves this instance as binary.
+
+
+
+ Saves this instance to a given .
+
+ The to save to.
+ If set to true, saves this instance as binary.
+
+
+
+ Populate this instance from the given as a binary .
+
+ The input to read from.
+ true if the read was successful; otherwise, false.
+
+
+
+ Represents the binary Steam3 manifest format.
+
+
+
+
+ Represents a backed MessageObject structure, which are often sent by the Steam servers.
+
+
+
+
+ Gets the inner object.
+
+
+
+
+ Initializes a new instance of the class, using the provided KeyValues object.
+
+ The KeyValue backing store for this message object.
+
+
+
+ Initializes a new instance of the class with an empty inner KeyValues.
+
+
+
+
+ Populates this MessageObject instance from the data inside the given stream.
+
+ The stream to load data from.
+ true on success; otherwise, false.
+
+
+
+ Writes this MessageObject instance to the given stream.
+
+ The stream to write to.
+
+
+
+ The base class used for wrapping common ulong types, to introduce type safety and distinguish between common types.
+
+
+
+
+ Gets or sets the value.
+
+
+ The value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The value to initialize this handle to.
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+ An object to compare with this object.
+
+ true if the current object is equal to the other parameter; otherwise, false.
+
+
+
+
+ Represents a handle to a published file on the Steam workshop.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The file id.
+
+
+
+ Performs an implicit conversion from to .
+
+ The published file.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The file id.
+
+ The result of the conversion.
+
+
+
+
+ Implements the operator ==.
+
+ The first published file.
+ The second published file.
+
+ The result of the operator.
+
+
+
+
+ Implements the operator !=.
+
+ The first published file.
+ The second published file.
+
+ The result of the operator.
+
+
+
+
+ This 64-bit structure is used for identifying various objects on the Steam network.
+
+
+
+
+ The account instance value when representing all instanced SteamIDs.
+
+
+
+
+ The account instance value for a desktop .
+
+
+
+
+ The account instance value for a console .
+
+
+
+
+ The account instance for mobile or web based SteamIDs.
+
+
+
+
+ Masking value used for the account id.
+
+
+
+
+ Masking value used for packing chat instance flags into a .
+
+
+
+
+ Represents various flags a chat may have, packed into its instance.
+
+
+
+
+ This flag is set for clan based chat SteamIDs.
+
+
+
+
+ This flag is set for lobby based chat SteamIDs.
+
+
+
+
+ This flag is set for matchmaking lobby based chat SteamIDs.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The account ID.
+ The universe.
+ The account type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The account ID.
+ The instance.
+ The universe.
+ The account type.
+
+
+
+ Initializes a new instance of the class.
+
+ The 64bit integer to assign this SteamID from.
+
+
+
+ Initializes a new instance of the class from a Steam2 "STEAM_" rendered form.
+ This constructor assumes the rendered SteamID is in the public universe.
+
+ A "STEAM_" rendered form of the SteamID.
+
+
+
+ Initializes a new instance of the class from a Steam2 "STEAM_" rendered form and universe.
+
+ A "STEAM_" rendered form of the SteamID.
+ The universe the SteamID belongs to.
+
+
+
+ Sets the various components of this SteamID instance.
+
+ The account ID.
+ The universe.
+ The account type.
+
+
+
+ Sets the various components of this SteamID instance.
+
+ The account ID.
+ The instance.
+ The universe.
+ The account type.
+
+
+
+ Sets the various components of this SteamID from a Steam2 "STEAM_" rendered form and universe.
+
+ A "STEAM_" rendered form of the SteamID.
+ The universe the SteamID belongs to.
+ true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format.
+
+
+
+ Sets the various components of this SteamID from a Steam3 "[X:1:2:3]" rendered form and universe.
+
+ A "[X:1:2:3]" rendered form of the SteamID.
+ true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format.
+
+
+
+ Sets the various components of this SteamID from a 64bit integer form.
+
+ The 64bit integer to assign this SteamID from.
+
+
+
+ Converts this SteamID into it's 64bit integer form.
+
+ A 64bit integer representing this SteamID.
+
+
+
+ Returns a static account key used for grouping accounts with differing instances.
+
+ A 64bit static account key.
+
+
+
+ Gets a value indicating whether this instance is a blank anonymous account
+
+
+ true if this instance is a blank anon account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a game server account.
+
+
+ true if this instance is a game server account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a persistent game server account.
+
+
+ true if this instance is a persistent game server account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is an anonymous game server account.
+
+
+ true if this instance is an anon game server account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a content server account.
+
+
+ true if this instance is a content server account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a clan account.
+
+
+ true if this instance is a clan account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a chat account.
+
+
+ true if this instance is a chat account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a lobby.
+
+
+ true if this instance is a lobby; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is an individual account.
+
+
+ true if this instance is an individual account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is an anonymous account.
+
+
+ true if this instance is an anon account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is an anonymous user account.
+
+
+ true if this instance is an anon user account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is a console user account.
+
+
+ true if this instance is a console user account; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is valid.
+
+
+ true if this instance is valid; otherwise, false.
+
+
+
+
+ Gets or sets the account id.
+
+
+ The account id.
+
+
+
+
+ Gets or sets the account instance.
+
+
+ The account instance.
+
+
+
+
+ Gets or sets the account type.
+
+
+ The account type.
+
+
+
+
+ Gets or sets the account universe.
+
+
+ The account universe.
+
+
+
+
+ Renders this instance into it's Steam2 "STEAM_" or Steam3 representation.
+
+ If set to true, the Steam3 rendering will be returned; otherwise, the Steam2 STEAM_ rendering.
+
+ A string Steam2 "STEAM_" representation of this SteamID, or a Steam3 representation.
+
+
+
+
+ Converts this clan ID to a chat ID.
+
+ The Chat ID for this clan's group chat.
+ This SteamID is not a clan ID.
+
+
+
+ Converts this chat ID to a clan ID.
+ This can be used to get the group that a group chat is associated with.
+
+ true if this chat ID represents a group chat, false otherwise.\
+ If the method returned true, then this is the group that this chat is associated with. Otherwise, this is null.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The SteamID.
+
+ The result of the conversion.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ A 64bit integer representing the SteamID.
+
+ The result of the conversion.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Implements the operator ==.
+
+ The left side SteamID.
+ The right side SteamID.
+
+ The result of the operator.
+
+
+
+
+ Implements the operator !=.
+
+ The left side SteamID.
+ The right side SteamID.
+
+ The result of the operator.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Handles encrypting and decrypting using the RSA public key encryption
+ algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The public key to encrypt with.
+
+
+
+ Encrypt the specified input.
+
+ The encrypted input.
+ The input to encrypt.
+
+
+
+ Disposes of this class.
+
+
+
+
+ Provides Crypto functions used in Steam protocols
+
+
+
+
+ Performs an SHA1 hash of an input byte array
+
+
+
+
+ Encrypts using AES/CBC/PKCS7 an input byte array with a given key and IV
+
+
+
+
+ Decrypts an input byte array using AES/CBC/PKCS7 with a given key and IV
+
+
+
+
+ Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None
+
+
+
+
+ Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None
+
+
+
+
+ Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None
+
+
+
+
+ Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None
+
+
+
+
+ Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None
+
+
+
+
+ Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None
+
+
+
+
+ Verifies and performs a symmetricdecrypt on the input using the given password as a key
+
+
+
+
+ Decrypts using AES/ECB/PKCS7
+
+
+
+
+ Performs CRC32 on an input byte array using the CrcStandard.Crc32Bit parameters
+
+
+
+
+ Performs an Adler32 on the given input
+
+
+
+
+ Generate an array of random bytes given the input length
+
+
+
+
+ Interface all debug log listeners must implement in order to register themselves.
+
+
+
+
+ Called when the DebugLog wishes to inform listeners of debug spew.
+
+ The category of the message.
+ The message to log.
+
+
+
+ Represents the root debug logging functionality.
+
+
+
+
+ Gets or sets a value indicating whether debug logging is enabled.
+
+
+ true if enabled; otherwise, false.
+
+
+
+
+ Initializes the class.
+
+
+
+
+ Adds a listener.
+
+ The listener.
+
+
+
+ Adds an action listener.
+
+ The listener action.
+
+
+
+ Removes a listener.
+
+ The listener.
+
+
+
+ Removes a listener.
+
+ The previously registered listener action.
+
+
+
+ Clears all registered listeners from the .
+
+
+
+
+ Writes a line to the debug log, informing all listeners.
+
+ The category of the message.
+ A composite format string.
+ An System.Object array containing zero or more objects to format.
+
+
+
+ Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack.
+ This method is equivalent to System.Diagnostics.Debug.Assert, however, it is tailored to spew failed assertions into the SteamKit debug log.
+
+ The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed.
+ The category of the message.
+ The message to display if the assertion fails.
+
+
+
+ This is a debug utility, do not use it to implement your business logic.
+
+ This interface is used for logging network messages sent to and received from the Steam server that the client is connected to.
+
+
+
+
+ Called when a packet is received from the Steam server.
+
+ Network message type of this packet message.
+ Raw packet data that was received.
+
+
+
+ Called when a packet is about to be sent to the Steam server.
+
+ Network message type of this packet message.
+ Raw packet data that will be sent.
+
+
+
+ Dump any network messages sent to and received from the Steam server that the client is connected to.
+ These messages are dumped to file, and can be analyzed further with NetHookAnalyzer, a hex editor, or your own purpose-built tools.
+
+ Be careful with this, sensitive data may be written to the disk (such as your Steam password).
+
+
+
+
+ Will create a folder in path "%assembly%/nethook/%currenttime%/"
+
+
+
+
+ Log to your own folder.
+
+ Path to folder.
+
+
+
+ Called when a packet is received from the Steam server.
+
+ Network message type of this packet message.
+ Raw packet data that was received.
+
+
+
+ Called when a packet is about to be sent to the Steam server.
+
+ Network message type of this packet message.
+ Raw packet data that will be sent.
+
+
+
+ Contains the public keys that Steam uses for each of the
+ types.
+
+
+
+
+ Gets the public key for the given universe.
+
+ The public key.
+ The universe.
+
+
+
+ A debug listener that writes debug output to the system console.
+
+
+
+
+ Called when the DebugLog wishes to inform listeners of debug spew.
+
+ 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.
+
+
+
+
+ Converts a given unix timestamp to a DateTime
+
+ A unix timestamp expressed as seconds since the unix epoch
+ DateTime representation
+
+
+
+ Converts a given DateTime into a unix timestamp representing seconds since the unix epoch.
+
+ DateTime to be expressed
+ 64-bit wide representation
+
+
+
+ Contains various utility functions for handling EMsgs.
+
+
+
+
+ Strips off the protobuf message flag and returns an EMsg.
+
+ The message number.
+ The underlying EMsg.
+
+
+
+ Strips off the protobuf message flag and returns an EMsg.
+
+ The message number.
+ The underlying EMsg.
+
+
+
+ Strips off the protobuf message flag and returns an EMsg.
+
+ The message number.
+ The underlying EMsg.
+
+
+
+ Determines whether message is protobuf flagged.
+
+ The message.
+
+ true if this message is protobuf flagged; otherwise, false.
+
+
+
+
+ Determines whether message is protobuf flagged.
+
+ The message.
+
+ true if this message is protobuf flagged; otherwise, false.
+
+
+
+
+ Crafts an EMsg, flagging it if required.
+
+ The EMsg to flag.
+ if set to true, the message is protobuf flagged.
+ A crafted EMsg, flagged if requested.
+
+
+
+ Crafts an EMsg, flagging it if required.
+
+ The EMsg to flag.
+ if set to true, the message is protobuf flagged.
+ A crafted EMsg, flagged if requested.
+
+
+
+ The exception that is thrown when an error in input stream occurs during decoding.
+
+
+
+
+ The exception that is thrown when the value of an argument is outside the allowable range.
+
+
+
+
+ Callback progress.
+
+
+ input size. -1 if unknown.
+
+
+ output size. -1 if unknown.
+
+
+
+
+ Codes streams.
+
+
+ input Stream.
+
+
+ output Stream.
+
+
+ input Size. -1 if unknown.
+
+
+ output Size. -1 if unknown.
+
+
+ callback progress reference.
+
+
+ if input stream is not valid
+
+
+
+
+ Provides the fields that represent properties idenitifiers for compressing.
+
+
+
+
+ Specifies default property.
+
+
+
+
+ Specifies size of dictionary.
+
+
+
+
+ Specifies size of memory for PPM*.
+
+
+
+
+ Specifies order for PPM methods.
+
+
+
+
+ Specifies Block Size.
+
+
+
+
+ Specifies number of postion state bits for LZMA (0 <= x <= 4).
+
+
+
+
+ Specifies number of literal context bits for LZMA (0 <= x <= 8).
+
+
+
+
+ Specifies number of literal position bits for LZMA (0 <= x <= 4).
+
+
+
+
+ Specifies number of fast bytes for LZ*.
+
+
+
+
+ Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
+
+
+
+
+ Specifies the number of match finder cyckes.
+
+
+
+
+ Specifies number of passes.
+
+
+
+
+ Specifies number of algorithm.
+
+
+
+
+ Specifies the number of threads.
+
+
+
+
+ Specifies mode with end marker.
+
+
+
+