mirror of
https://github.com/JustArchiNET/ArchiSteamFarm
synced 2024-11-10 07:04:27 +00:00
Closes #991
This commit is contained in:
parent
9f5138cea1
commit
5f33512658
10 changed files with 234 additions and 72 deletions
|
@ -29,6 +29,8 @@ using System.Threading;
|
|||
using System.Threading.Tasks;
|
||||
using ArchiSteamFarm.Localization;
|
||||
using ArchiSteamFarm.NLog;
|
||||
using SteamKit2;
|
||||
using SteamKit2.Discovery;
|
||||
|
||||
namespace ArchiSteamFarm {
|
||||
internal static class ASF {
|
||||
|
@ -48,8 +50,22 @@ namespace ArchiSteamFarm {
|
|||
return;
|
||||
}
|
||||
|
||||
// Before attempting to connect, initialize our configuration
|
||||
await Bot.InitializeSteamConfiguration(Program.GlobalConfig.SteamProtocols, Program.GlobalDatabase.CellID, Program.GlobalDatabase.ServerListProvider).ConfigureAwait(false);
|
||||
// Ensure that we ask for a list of servers if we don't have any saved servers available
|
||||
IEnumerable<ServerRecord> servers = await Program.GlobalDatabase.ServerListProvider.FetchServerListAsync().ConfigureAwait(false);
|
||||
|
||||
if (servers?.Any() != true) {
|
||||
ArchiLogger.LogGenericInfo(string.Format(Strings.Initializing, nameof(SteamDirectory)));
|
||||
|
||||
SteamConfiguration steamConfiguration = SteamConfiguration.Create(builder => builder.WithProtocolTypes(Program.GlobalConfig.SteamProtocols).WithCellID(Program.GlobalDatabase.CellID).WithServerListProvider(Program.GlobalDatabase.ServerListProvider).WithHttpClientFactory(() => Program.WebBrowser.GenerateDisposableHttpClient()));
|
||||
|
||||
try {
|
||||
await SteamDirectory.LoadAsync(steamConfiguration).ConfigureAwait(false);
|
||||
ArchiLogger.LogGenericInfo(Strings.Success);
|
||||
} catch {
|
||||
ArchiLogger.LogGenericWarning(Strings.BotSteamDirectoryInitializationFailed);
|
||||
await Task.Delay(5000).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
HashSet<string> botNames;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ using System.Collections.Immutable;
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -227,7 +228,6 @@ namespace ArchiSteamFarm {
|
|||
// ReSharper disable once AccessToDisposedClosure
|
||||
async () => await iEconService.DeclineTradeOffer(
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true,
|
||||
tradeofferid: tradeID
|
||||
)
|
||||
).ConfigureAwait(false);
|
||||
|
@ -248,6 +248,8 @@ namespace ArchiSteamFarm {
|
|||
return true;
|
||||
}
|
||||
|
||||
internal HttpClient GenerateDisposableHttpClient() => WebBrowser.GenerateDisposableHttpClient();
|
||||
|
||||
internal async Task<HashSet<uint>> GenerateNewDiscoveryQueue() {
|
||||
const string request = "/explore/generatenewdiscoveryqueue";
|
||||
|
||||
|
@ -281,7 +283,6 @@ namespace ArchiSteamFarm {
|
|||
active_only: 1,
|
||||
get_descriptions: 1,
|
||||
get_received_offers: 1,
|
||||
secure: true,
|
||||
time_historical_cutoff: uint.MaxValue
|
||||
)
|
||||
).ConfigureAwait(false);
|
||||
|
@ -408,7 +409,7 @@ namespace ArchiSteamFarm {
|
|||
WebAPI.DefaultBaseAddress.Host,
|
||||
|
||||
// ReSharper disable once AccessToDisposedClosure
|
||||
async () => await iSteamApps.GetAppList2(secure: true)
|
||||
async () => await iSteamApps.GetAppList2()
|
||||
).ConfigureAwait(false);
|
||||
} catch (TaskCanceledException e) {
|
||||
Bot.ArchiLogger.LogGenericDebuggingException(e);
|
||||
|
@ -800,7 +801,6 @@ namespace ArchiSteamFarm {
|
|||
// ReSharper disable once AccessToDisposedClosure
|
||||
async () => await iPlayerService.GetOwnedGames(
|
||||
include_appinfo: 1,
|
||||
secure: true,
|
||||
steamid: steamID
|
||||
)
|
||||
).ConfigureAwait(false);
|
||||
|
@ -849,10 +849,7 @@ namespace ArchiSteamFarm {
|
|||
WebAPI.DefaultBaseAddress.Host,
|
||||
|
||||
// ReSharper disable once AccessToDisposedClosure
|
||||
async () => await iTwoFactorService.QueryTime(
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
)
|
||||
async () => await iTwoFactorService.QueryTime(method: WebRequestMethods.Http.Post)
|
||||
).ConfigureAwait(false);
|
||||
} catch (TaskCanceledException e) {
|
||||
Bot.ArchiLogger.LogGenericDebuggingException(e);
|
||||
|
@ -960,7 +957,6 @@ namespace ArchiSteamFarm {
|
|||
|
||||
// ReSharper disable once AccessToDisposedClosure
|
||||
async () => await iEconService.GetTradeHoldDurations(
|
||||
secure: true,
|
||||
steamid_target: steamID,
|
||||
trade_offer_access_token: tradeToken ?? "" // TODO: Change me once https://github.com/SteamRE/SteamKit/pull/522 is merged
|
||||
)
|
||||
|
@ -1115,7 +1111,6 @@ namespace ArchiSteamFarm {
|
|||
async () => await iSteamUserAuth.AuthenticateUser(
|
||||
encrypted_loginkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(encryptedLoginKey, 0, encryptedLoginKey.Length)),
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true,
|
||||
sessionkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(encryptedSessionKey, 0, encryptedSessionKey.Length)),
|
||||
steamid: steamID
|
||||
)
|
||||
|
|
|
@ -36,7 +36,6 @@ using ArchiSteamFarm.Localization;
|
|||
using ArchiSteamFarm.NLog;
|
||||
using Newtonsoft.Json;
|
||||
using SteamKit2;
|
||||
using SteamKit2.Discovery;
|
||||
using SteamKit2.Unified.Internal;
|
||||
|
||||
namespace ArchiSteamFarm {
|
||||
|
@ -58,8 +57,6 @@ namespace ArchiSteamFarm {
|
|||
private static readonly SemaphoreSlim BotsSemaphore = new SemaphoreSlim(1, 1);
|
||||
private static readonly SemaphoreSlim LoginSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
private static SteamConfiguration SteamConfiguration;
|
||||
|
||||
internal readonly Actions Actions;
|
||||
internal readonly ArchiHandler ArchiHandler;
|
||||
internal readonly ArchiLogger ArchiLogger;
|
||||
|
@ -123,7 +120,7 @@ namespace ArchiSteamFarm {
|
|||
internal bool PlayingWasBlocked { get; private set; }
|
||||
internal ulong SteamID { get; private set; }
|
||||
|
||||
internal int WalletBalance { get; private set; }
|
||||
internal uint WalletBalance { get; private set; }
|
||||
internal ECurrencyCode WalletCurrency { get; private set; }
|
||||
|
||||
[JsonProperty]
|
||||
|
@ -181,8 +178,12 @@ namespace ArchiSteamFarm {
|
|||
BotDatabase.MobileAuthenticator.Init(this);
|
||||
}
|
||||
|
||||
ArchiWebHandler = new ArchiWebHandler(this);
|
||||
|
||||
SteamConfiguration steamConfiguration = SteamConfiguration.Create(builder => builder.WithProtocolTypes(Program.GlobalConfig.SteamProtocols).WithCellID(Program.GlobalDatabase.CellID).WithServerListProvider(Program.GlobalDatabase.ServerListProvider).WithHttpClientFactory(() => ArchiWebHandler.GenerateDisposableHttpClient()));
|
||||
|
||||
// Initialize
|
||||
SteamClient = new SteamClient(SteamConfiguration);
|
||||
SteamClient = new SteamClient(steamConfiguration);
|
||||
|
||||
if (Debugging.IsUserDebugging && Directory.Exists(SharedInfo.DebugDirectory)) {
|
||||
string debugListenerPath = Path.Combine(SharedInfo.DebugDirectory, botName);
|
||||
|
@ -227,7 +228,6 @@ namespace ArchiSteamFarm {
|
|||
CallbackManager.Subscribe<ArchiHandler.VanityURLChangedCallback>(OnVanityURLChangedCallback);
|
||||
|
||||
Actions = new Actions(this);
|
||||
ArchiWebHandler = new ArchiWebHandler(this);
|
||||
CardsFarmer = new CardsFarmer(this);
|
||||
Commands = new Commands(this);
|
||||
Trading = new Trading(this);
|
||||
|
@ -748,30 +748,6 @@ namespace ArchiSteamFarm {
|
|||
}
|
||||
}
|
||||
|
||||
internal static async Task InitializeSteamConfiguration(ProtocolTypes protocolTypes, uint cellID, IServerListProvider serverListProvider) {
|
||||
if (serverListProvider == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(serverListProvider));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
SteamConfiguration = SteamConfiguration.Create(builder => builder.WithProtocolTypes(protocolTypes).WithCellID(cellID).WithServerListProvider(serverListProvider));
|
||||
|
||||
// Ensure that we ask for a list of servers if we don't have any saved servers available
|
||||
IEnumerable<ServerRecord> servers = await SteamConfiguration.ServerListProvider.FetchServerListAsync().ConfigureAwait(false);
|
||||
|
||||
if (servers?.Any() != true) {
|
||||
ASF.ArchiLogger.LogGenericInfo(string.Format(Strings.Initializing, nameof(SteamDirectory)));
|
||||
|
||||
try {
|
||||
await SteamDirectory.LoadAsync(SteamConfiguration).ConfigureAwait(false);
|
||||
ASF.ArchiLogger.LogGenericInfo(Strings.Success);
|
||||
} catch {
|
||||
ASF.ArchiLogger.LogGenericWarning(Strings.BotSteamDirectoryInitializationFailed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal bool IsBlacklistedFromIdling(uint appID) {
|
||||
if (appID == 0) {
|
||||
ArchiLogger.LogNullError(nameof(appID));
|
||||
|
@ -2456,7 +2432,7 @@ namespace ArchiSteamFarm {
|
|||
return;
|
||||
}
|
||||
|
||||
WalletBalance = callback.Balance;
|
||||
WalletBalance = (uint) callback.LongBalance;
|
||||
WalletCurrency = callback.Currency;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,30 +45,45 @@ namespace ArchiSteamFarm {
|
|||
|
||||
private readonly ArchiLogger ArchiLogger;
|
||||
private readonly HttpClient HttpClient;
|
||||
private readonly HttpClientHandler HttpClientHandler;
|
||||
|
||||
internal WebBrowser(ArchiLogger archiLogger, IWebProxy webProxy = null, bool extendedTimeout = false) {
|
||||
ArchiLogger = archiLogger ?? throw new ArgumentNullException(nameof(archiLogger));
|
||||
|
||||
HttpClientHandler httpClientHandler = new HttpClientHandler {
|
||||
HttpClientHandler = new HttpClientHandler {
|
||||
AllowAutoRedirect = false, // This must be false if we want to handle custom redirection schemes such as "steammobile://"
|
||||
AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip,
|
||||
CookieContainer = CookieContainer,
|
||||
Proxy = webProxy,
|
||||
UseProxy = webProxy != null
|
||||
CookieContainer = CookieContainer
|
||||
};
|
||||
|
||||
if (!RuntimeCompatibility.IsRunningOnMono) {
|
||||
httpClientHandler.MaxConnectionsPerServer = MaxConnections;
|
||||
if (webProxy != null) {
|
||||
HttpClientHandler.Proxy = webProxy;
|
||||
HttpClientHandler.UseProxy = true;
|
||||
}
|
||||
|
||||
HttpClient = new HttpClient(httpClientHandler) { Timeout = TimeSpan.FromSeconds(extendedTimeout ? ExtendedTimeoutMultiplier * Program.GlobalConfig.ConnectionTimeout : Program.GlobalConfig.ConnectionTimeout) };
|
||||
if (!RuntimeCompatibility.IsRunningOnMono) {
|
||||
HttpClientHandler.MaxConnectionsPerServer = MaxConnections;
|
||||
}
|
||||
|
||||
// Most web services expect that UserAgent is set, so we declare it globally
|
||||
// If you by any chance came here with a very "clever" idea of changing default ASF user-agent then here is a very good advice from me: don't, for your own safety - you've been warned
|
||||
HttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(SharedInfo.PublicIdentifier + "/" + SharedInfo.Version + " (+" + SharedInfo.ProjectURL + ")");
|
||||
HttpClient = GenerateDisposableHttpClient(extendedTimeout);
|
||||
}
|
||||
|
||||
public void Dispose() => HttpClient.Dispose();
|
||||
public void Dispose() {
|
||||
HttpClient.Dispose();
|
||||
HttpClientHandler.Dispose();
|
||||
}
|
||||
|
||||
internal HttpClient GenerateDisposableHttpClient(bool extendedTimeout = false) {
|
||||
HttpClient result = new HttpClient(HttpClientHandler) {
|
||||
Timeout = TimeSpan.FromSeconds(extendedTimeout ? ExtendedTimeoutMultiplier * Program.GlobalConfig.ConnectionTimeout : Program.GlobalConfig.ConnectionTimeout)
|
||||
};
|
||||
|
||||
// Most web services expect that UserAgent is set, so we declare it globally
|
||||
// If you by any chance came here with a very "clever" idea of hiding your ass by changing default ASF user-agent then here is a very good advice from me: don't, for your own safety - you've been warned
|
||||
result.DefaultRequestHeaders.UserAgent.ParseAdd(SharedInfo.PublicIdentifier + "/" + SharedInfo.Version + " (+" + SharedInfo.ProjectURL + ")");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static void Init() {
|
||||
// Set max connection limit from default of 2 to desired value
|
||||
|
|
Binary file not shown.
|
@ -4879,7 +4879,12 @@
|
|||
</member>
|
||||
<member name="P:SteamKit2.SteamUser.WalletInfoCallback.Balance">
|
||||
<summary>
|
||||
Gets the balance of the wallet, in cents.
|
||||
Gets the balance of the wallet as a 32-bit integer, in cents.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamUser.WalletInfoCallback.LongBalance">
|
||||
<summary>
|
||||
Gets the balance of the wallet as a 64-bit integer, in cents.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:SteamKit2.SteamUser.UpdateMachineAuthCallback">
|
||||
|
@ -5935,6 +5940,13 @@
|
|||
<param name="allowDirectoryFetch">Whether or not to use the Steam Directory to discover available servers.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="M:SteamKit2.ISteamConfigurationBuilder.WithHttpClientFactory(SteamKit2.HttpClientFactory)">
|
||||
<summary>
|
||||
Configures this <see cref="T:SteamKit2.SteamConfiguration" /> with custom HTTP behaviour.
|
||||
</summary>
|
||||
<param name="factoryFunction">A function to create and configure a new HttpClient.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="M:SteamKit2.ISteamConfigurationBuilder.WithProtocolTypes(SteamKit2.ProtocolTypes)">
|
||||
<summary>
|
||||
Configures how this <see cref="T:SteamKit2.SteamConfiguration" /> will be used to connect to Steam.
|
||||
|
@ -5973,6 +5985,13 @@
|
|||
Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.HttpClientFactory">
|
||||
<summary>
|
||||
Factory function to create a user-configured HttpClient.
|
||||
The HttpClient will be disposed of after use.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:System.Net.Http.HttpClient"/> to be used to send HTTP requests.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.SteamConfiguration">
|
||||
<summary>
|
||||
Configuration object to use.
|
||||
|
@ -6012,6 +6031,11 @@
|
|||
when calling <c>SteamFriends.RequestFriendInfo</c> without specifying flags.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamConfiguration.HttpClientFactory">
|
||||
<summary>
|
||||
Factory function to create a user-configured HttpClient.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamConfiguration.ProtocolTypes">
|
||||
<summary>
|
||||
The supported protocol types to use when attempting to connect to Steam.
|
||||
|
@ -6338,6 +6362,7 @@
|
|||
<returns>A <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.Interface.Call(System.Net.Http.HttpMethod,System.String,System.Int32,System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
|
@ -6351,6 +6376,7 @@
|
|||
<returns>A <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.Interface.Dispose">
|
||||
|
@ -6389,10 +6415,6 @@
|
|||
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.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentException">
|
||||
The reserved named parameter 'secure' was not a boolean value.
|
||||
This parameter is used when requests must go through the secure API.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
The function version number specified was out of range.
|
||||
</exception>
|
||||
|
@ -6423,6 +6445,7 @@
|
|||
<returns>A <see cref="T:System.Threading.Tasks.Task`1"/> that contains a <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.AsyncInterface.Dispose">
|
||||
|
@ -6461,10 +6484,6 @@
|
|||
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.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentException">
|
||||
The reserved named parameter 'secure' was not a boolean value.
|
||||
This parameter is used when requests must go through the secure API.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
The function version number specified was out of range.
|
||||
</exception>
|
||||
|
@ -6503,6 +6522,28 @@
|
|||
<param name="apiKey">An optional API key to be used for authorized requests.</param>
|
||||
<returns>A dynamic <see cref="T:SteamKit2.WebAPI.AsyncInterface"/> object to interact with the Web API.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.WebAPIRequestException">
|
||||
<summary>
|
||||
Thrown when WebAPI request fails.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.WebAPIRequestException.StatusCode">
|
||||
<summary>
|
||||
Represents the status code of the HTTP response.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.WebAPIRequestException.Headers">
|
||||
<summary>
|
||||
Represents the collection of HTTP response headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPIRequestException.#ctor(System.String,System.Net.Http.HttpResponseMessage)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.WebAPIRequestException"/> class.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
<param name="response">HTTP response message including the status code and data.</param>
|
||||
</member>
|
||||
<member name="T:SteamKit2.DepotManifest">
|
||||
<summary>
|
||||
Represents a Steam3 depot manifest.
|
||||
|
@ -6586,6 +6627,31 @@
|
|||
<c>true</c> if the filenames are encrypted; otherwise, <c>false</c>.
|
||||
</value>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.DepotID">
|
||||
<summary>
|
||||
Gets the depot id.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.ManifestGID">
|
||||
<summary>
|
||||
Gets the manifest id.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.CreationTime">
|
||||
<summary>
|
||||
Gets the depot creation time.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.TotalUncompressedSize">
|
||||
<summary>
|
||||
Gets the total uncompressed size of all files in this depot.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.TotalCompressedSize">
|
||||
<summary>
|
||||
Gets the total compressed size of all files in this depot.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SteamKit2.DepotManifest.DecryptFilenames(System.Byte[])">
|
||||
<summary>
|
||||
Attempts to decrypts file names with the given encryption key.
|
||||
|
@ -6640,6 +6706,20 @@
|
|||
</summary>
|
||||
<param name="nAppID">The 32bit app id to assign this GameID from.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.#ctor(System.UInt32,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.GameID"/> class.
|
||||
</summary>
|
||||
<param name="nAppID">The base app id of the mod.</param>
|
||||
<param name="modPath">The game folder name of the mod.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.#ctor(System.String,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.GameID"/> class.
|
||||
</summary>
|
||||
<param name="exePath">The path to the executable, usually quoted.</param>
|
||||
<param name="appName">The name of the application shortcut.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.Set(System.UInt64)">
|
||||
<summary>
|
||||
Sets the various components of this GameID from a 64bit integer form.
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4879,7 +4879,12 @@
|
|||
</member>
|
||||
<member name="P:SteamKit2.SteamUser.WalletInfoCallback.Balance">
|
||||
<summary>
|
||||
Gets the balance of the wallet, in cents.
|
||||
Gets the balance of the wallet as a 32-bit integer, in cents.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamUser.WalletInfoCallback.LongBalance">
|
||||
<summary>
|
||||
Gets the balance of the wallet as a 64-bit integer, in cents.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:SteamKit2.SteamUser.UpdateMachineAuthCallback">
|
||||
|
@ -5935,6 +5940,13 @@
|
|||
<param name="allowDirectoryFetch">Whether or not to use the Steam Directory to discover available servers.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="M:SteamKit2.ISteamConfigurationBuilder.WithHttpClientFactory(SteamKit2.HttpClientFactory)">
|
||||
<summary>
|
||||
Configures this <see cref="T:SteamKit2.SteamConfiguration" /> with custom HTTP behaviour.
|
||||
</summary>
|
||||
<param name="factoryFunction">A function to create and configure a new HttpClient.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="M:SteamKit2.ISteamConfigurationBuilder.WithProtocolTypes(SteamKit2.ProtocolTypes)">
|
||||
<summary>
|
||||
Configures how this <see cref="T:SteamKit2.SteamConfiguration" /> will be used to connect to Steam.
|
||||
|
@ -5973,6 +5985,13 @@
|
|||
Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.</param>
|
||||
<returns>A builder with modified configuration.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.HttpClientFactory">
|
||||
<summary>
|
||||
Factory function to create a user-configured HttpClient.
|
||||
The HttpClient will be disposed of after use.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:System.Net.Http.HttpClient"/> to be used to send HTTP requests.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.SteamConfiguration">
|
||||
<summary>
|
||||
Configuration object to use.
|
||||
|
@ -6012,6 +6031,11 @@
|
|||
when calling <c>SteamFriends.RequestFriendInfo</c> without specifying flags.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamConfiguration.HttpClientFactory">
|
||||
<summary>
|
||||
Factory function to create a user-configured HttpClient.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.SteamConfiguration.ProtocolTypes">
|
||||
<summary>
|
||||
The supported protocol types to use when attempting to connect to Steam.
|
||||
|
@ -6338,6 +6362,7 @@
|
|||
<returns>A <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.Interface.Call(System.Net.Http.HttpMethod,System.String,System.Int32,System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
|
@ -6351,6 +6376,7 @@
|
|||
<returns>A <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.Interface.Dispose">
|
||||
|
@ -6389,10 +6415,6 @@
|
|||
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.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentException">
|
||||
The reserved named parameter 'secure' was not a boolean value.
|
||||
This parameter is used when requests must go through the secure API.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
The function version number specified was out of range.
|
||||
</exception>
|
||||
|
@ -6423,6 +6445,7 @@
|
|||
<returns>A <see cref="T:System.Threading.Tasks.Task`1"/> that contains a <see cref="T:SteamKit2.KeyValue"/> object representing the results of the Web API call.</returns>
|
||||
<exception cref="T:System.ArgumentNullException">The function name or request method provided were <c>null</c>.</exception>
|
||||
<exception cref="T:System.Net.Http.HttpRequestException">An network error occurred when performing the request.</exception>
|
||||
<exception cref="T:SteamKit2.WebAPIRequestException">A network error occurred when performing the request.</exception>
|
||||
<exception cref="T:System.IO.InvalidDataException">An error occured when parsing the response from the WebAPI.</exception>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPI.AsyncInterface.Dispose">
|
||||
|
@ -6461,10 +6484,6 @@
|
|||
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.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentException">
|
||||
The reserved named parameter 'secure' was not a boolean value.
|
||||
This parameter is used when requests must go through the secure API.
|
||||
</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
The function version number specified was out of range.
|
||||
</exception>
|
||||
|
@ -6503,6 +6522,28 @@
|
|||
<param name="apiKey">An optional API key to be used for authorized requests.</param>
|
||||
<returns>A dynamic <see cref="T:SteamKit2.WebAPI.AsyncInterface"/> object to interact with the Web API.</returns>
|
||||
</member>
|
||||
<member name="T:SteamKit2.WebAPIRequestException">
|
||||
<summary>
|
||||
Thrown when WebAPI request fails.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.WebAPIRequestException.StatusCode">
|
||||
<summary>
|
||||
Represents the status code of the HTTP response.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.WebAPIRequestException.Headers">
|
||||
<summary>
|
||||
Represents the collection of HTTP response headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SteamKit2.WebAPIRequestException.#ctor(System.String,System.Net.Http.HttpResponseMessage)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.WebAPIRequestException"/> class.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
<param name="response">HTTP response message including the status code and data.</param>
|
||||
</member>
|
||||
<member name="T:SteamKit2.DepotManifest">
|
||||
<summary>
|
||||
Represents a Steam3 depot manifest.
|
||||
|
@ -6586,6 +6627,31 @@
|
|||
<c>true</c> if the filenames are encrypted; otherwise, <c>false</c>.
|
||||
</value>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.DepotID">
|
||||
<summary>
|
||||
Gets the depot id.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.ManifestGID">
|
||||
<summary>
|
||||
Gets the manifest id.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.CreationTime">
|
||||
<summary>
|
||||
Gets the depot creation time.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.TotalUncompressedSize">
|
||||
<summary>
|
||||
Gets the total uncompressed size of all files in this depot.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:SteamKit2.DepotManifest.TotalCompressedSize">
|
||||
<summary>
|
||||
Gets the total compressed size of all files in this depot.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:SteamKit2.DepotManifest.DecryptFilenames(System.Byte[])">
|
||||
<summary>
|
||||
Attempts to decrypts file names with the given encryption key.
|
||||
|
@ -6640,6 +6706,20 @@
|
|||
</summary>
|
||||
<param name="nAppID">The 32bit app id to assign this GameID from.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.#ctor(System.UInt32,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.GameID"/> class.
|
||||
</summary>
|
||||
<param name="nAppID">The base app id of the mod.</param>
|
||||
<param name="modPath">The game folder name of the mod.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.#ctor(System.String,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:SteamKit2.GameID"/> class.
|
||||
</summary>
|
||||
<param name="exePath">The path to the executable, usually quoted.</param>
|
||||
<param name="appName">The name of the application shortcut.</param>
|
||||
</member>
|
||||
<member name="M:SteamKit2.GameID.Set(System.UInt64)">
|
||||
<summary>
|
||||
Sets the various components of this GameID from a 64bit integer form.
|
||||
|
|
Loading…
Reference in a new issue