diff --git a/.travis.yml b/.travis.yml
index 38831e5b5..378b94812 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,7 +16,7 @@ branches:
group: travis_latest
# ASF is based on .NET Core platform
-dotnet: 2.1.105
+dotnet: 2.1.300
mono: none
env:
@@ -24,7 +24,7 @@ env:
- CONFIGURATION: Release
- DOTNET_CLI_TELEMETRY_OPTOUT: 1
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
- - NET_CORE_VERSION: netcoreapp2.0
+ - NET_CORE_VERSION: netcoreapp2.1
- VARIANTS="generic linux-arm linux-x64 osx-x64 win-x64" # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs!
before_script:
@@ -46,7 +46,8 @@ script:
publish() {
if [ "$1" = 'generic' ]; then
- dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" /nologo "/p:ASFVariant=$1"
+ # TODO: Workaround https://github.com/mono/linker/issues/286 until it's resolved
+ dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" /nologo "/p:ASFVariant=$1" "/p:LinkDuringPublish=false"
else
dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" -r "$1" /nologo "/p:ASFVariant=$1" "/p:CrossGenDuringPublish=false"
fi
@@ -60,6 +61,7 @@ script:
for variant in $VARIANTS; do
publish "$variant" &
done
+
wait
matrix:
diff --git a/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj b/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj
index 76a3e188f..8c6c28233 100644
--- a/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj
+++ b/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj
@@ -15,7 +15,7 @@
https://github.com/JustArchi/ArchiSteamFarm
Git
https://github.com/JustArchi/ArchiSteamFarm.git
- netcoreapp2.0
+ netcoreapp2.1
diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj
index 3d0aec4cd..5926f25f1 100644
--- a/ArchiSteamFarm/ArchiSteamFarm.csproj
+++ b/ArchiSteamFarm/ArchiSteamFarm.csproj
@@ -2,14 +2,14 @@
ASF.ico
- 3.1.3.5
+ 3.2.0.0
JustArchi
JustArchi
true
Copyright © ArchiSteamFarm 2015-2018
ASF is an application that allows you to farm steam cards using multiple steam accounts simultaneously.
none
- 3.1.3.5
+ 3.2.0.0
latest
Exe
@@ -20,7 +20,7 @@
https://github.com/JustArchi/ArchiSteamFarm.git
linux-arm;linux-x64;osx-x64;win-x64
false
- netcoreapp2.0;net472
+ netcoreapp2.1;net472
@@ -43,7 +43,7 @@
-
+
diff --git a/ArchiSteamFarm/GlobalConfig.cs b/ArchiSteamFarm/GlobalConfig.cs
index 4b7f7be91..7aac43993 100644
--- a/ArchiSteamFarm/GlobalConfig.cs
+++ b/ArchiSteamFarm/GlobalConfig.cs
@@ -37,8 +37,6 @@ namespace ArchiSteamFarm {
internal const ushort DefaultIPCPort = 1242;
internal const byte DefaultLoginLimiterDelay = 10;
- private const ProtocolTypes DefaultSteamProtocols = ProtocolTypes.Tcp | ProtocolTypes.Udp;
-
internal static readonly HashSet SalesBlacklist = new HashSet { 267420, 303700, 335590, 368020, 425280, 480730, 566020, 639900, 762800 }; // Steam Summer/Winter sales
private static readonly SemaphoreSlim WriteSemaphore = new SemaphoreSlim(1, 1);
@@ -119,7 +117,7 @@ namespace ArchiSteamFarm {
internal ulong SteamOwnerID { get; private set; }
[JsonProperty(Required = Required.DisallowNull)]
- internal ProtocolTypes SteamProtocols { get; private set; } = DefaultSteamProtocols;
+ internal ProtocolTypes SteamProtocols { get; private set; } = ProtocolTypes.All;
internal WebProxy WebProxy { get; private set; }
@@ -287,18 +285,11 @@ namespace ArchiSteamFarm {
return null;
}
- if (globalConfig.SteamProtocols == 0) {
+ if ((globalConfig.SteamProtocols == 0) || (globalConfig.SteamProtocols > ProtocolTypes.All)) {
ASF.ArchiLogger.LogGenericError(string.Format(Strings.ErrorConfigPropertyInvalid, nameof(globalConfig.SteamProtocols), globalConfig.SteamProtocols));
return null;
}
- if (globalConfig.SteamProtocols.HasFlag(ProtocolTypes.WebSocket) && !OS.SupportsWebSockets()) {
- globalConfig.SteamProtocols &= ~ProtocolTypes.WebSocket;
- if (globalConfig.SteamProtocols == 0) {
- globalConfig.SteamProtocols = DefaultSteamProtocols;
- }
- }
-
return globalConfig;
}
diff --git a/ArchiSteamFarm/OS.cs b/ArchiSteamFarm/OS.cs
index cfe8fc427..e4aa5513f 100644
--- a/ArchiSteamFarm/OS.cs
+++ b/ArchiSteamFarm/OS.cs
@@ -21,7 +21,6 @@
using System;
using System.IO;
-using System.Net.WebSockets;
using System.Runtime.InteropServices;
using ArchiSteamFarm.Localization;
@@ -39,17 +38,6 @@ namespace ArchiSteamFarm {
}
}
- // TODO: We should really get rid of this once https://github.com/SteamRE/SteamKit/issues/455 or https://github.com/dotnet/corefx/issues/9503 is solved
- internal static bool SupportsWebSockets() {
- try {
- using (new ClientWebSocket()) {
- return true;
- }
- } catch (PlatformNotSupportedException) {
- return false;
- }
- }
-
internal static void UnixSetFileAccessExecutable(string path) {
if (string.IsNullOrEmpty(path) || !File.Exists(path)) {
ASF.ArchiLogger.LogNullError(nameof(path));
diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs
index ed7b231a8..93cc98200 100644
--- a/ArchiSteamFarm/Program.cs
+++ b/ArchiSteamFarm/Program.cs
@@ -250,6 +250,7 @@ namespace ArchiSteamFarm {
}
if (GlobalConfig.BackgroundGCPeriod > 0) {
+ ASF.ArchiLogger.LogGenericWarning(string.Format(Strings.WarningDeprecated, nameof(GlobalConfig.BackgroundGCPeriod), "COMPlus_GCLatencyLevel=0"));
Hacks.EnableBackgroundGC(GlobalConfig.BackgroundGCPeriod);
}
diff --git a/ArchiSteamFarm/config/ASF.json b/ArchiSteamFarm/config/ASF.json
index a06da3c1b..42640ca0f 100644
--- a/ArchiSteamFarm/config/ASF.json
+++ b/ArchiSteamFarm/config/ASF.json
@@ -23,7 +23,7 @@
"OptimizationMode": 0,
"Statistics": true,
"SteamOwnerID": 0,
- "SteamProtocols": 3,
+ "SteamProtocols": 7,
"UpdateChannel": 1,
"UpdatePeriod": 24,
"WebLimiterDelay": 200,
diff --git a/Dockerfile.Service.arm b/Dockerfile.Service.arm
index f157236f0..50f96ebef 100644
--- a/Dockerfile.Service.arm
+++ b/Dockerfile.Service.arm
@@ -1,12 +1,12 @@
-FROM microsoft/dotnet:2.0-sdk AS build-env
-ENV NET_CORE_VERSION netcoreapp2.0
+FROM microsoft/dotnet:2.1-sdk AS build-env
+ENV NET_CORE_VERSION netcoreapp2.1
WORKDIR /app
COPY . ./
RUN dotnet --info && \
dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=generic && \
cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh"
-FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7
+FROM microsoft/dotnet:2.1-runtime-stretch-slim-arm32v7
LABEL maintainer="JustArchi "
EXPOSE 1242
WORKDIR /app
diff --git a/Dockerfile.Service.x64 b/Dockerfile.Service.x64
index d57a20853..ed58a1f4f 100644
--- a/Dockerfile.Service.x64
+++ b/Dockerfile.Service.x64
@@ -1,12 +1,12 @@
-FROM microsoft/dotnet:2.0-sdk AS build-env
-ENV NET_CORE_VERSION netcoreapp2.0
+FROM microsoft/dotnet:2.1-sdk AS build-env
+ENV NET_CORE_VERSION netcoreapp2.1
WORKDIR /app
COPY . ./
RUN dotnet --info && \
dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=generic && \
cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh"
-FROM microsoft/dotnet:2.0-runtime
+FROM microsoft/dotnet:2.1-runtime-stretch-slim
LABEL maintainer="JustArchi "
EXPOSE 1242
WORKDIR /app
diff --git a/Dockerfile.arm b/Dockerfile.arm
index 3d545f31d..5a631211a 100644
--- a/Dockerfile.arm
+++ b/Dockerfile.arm
@@ -1,12 +1,12 @@
-FROM microsoft/dotnet:2.0-sdk AS build-env
-ENV NET_CORE_VERSION netcoreapp2.0
+FROM microsoft/dotnet:2.1-sdk AS build-env
+ENV NET_CORE_VERSION netcoreapp2.1
WORKDIR /app
COPY . ./
RUN dotnet --info && \
dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=docker && \
cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh" "ArchiSteamFarm/out/ArchiSteamFarm.sh"
-FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7
+FROM microsoft/dotnet:2.1-runtime-stretch-slim-arm32v7
LABEL maintainer="JustArchi "
EXPOSE 1242
WORKDIR /app
diff --git a/Dockerfile.x64 b/Dockerfile.x64
index 1574e0798..95eb71774 100644
--- a/Dockerfile.x64
+++ b/Dockerfile.x64
@@ -1,12 +1,12 @@
-FROM microsoft/dotnet:2.0-sdk AS build-env
-ENV NET_CORE_VERSION netcoreapp2.0
+FROM microsoft/dotnet:2.1-sdk AS build-env
+ENV NET_CORE_VERSION netcoreapp2.1
WORKDIR /app
COPY . ./
RUN dotnet --info && \
dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=docker && \
cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh" "ArchiSteamFarm/out/ArchiSteamFarm.sh"
-FROM microsoft/dotnet:2.0-runtime
+FROM microsoft/dotnet:2.1-runtime-stretch-slim
LABEL maintainer="JustArchi "
EXPOSE 1242
WORKDIR /app
diff --git a/WebConfigGenerator/src/schema.js b/WebConfigGenerator/src/schema.js
index d92d32ab4..b2fcb747b 100644
--- a/WebConfigGenerator/src/schema.js
+++ b/WebConfigGenerator/src/schema.js
@@ -1,7 +1,526 @@
import Validators from './validators';
export default {
- 'V3.1.2.5+': {
+ 'V3.2.0.0+': {
+ asf: [
+ {
+ legend: 'schema.basic',
+ fields: [
+ {
+ label: 'SteamOwnerID',
+ field: 's_SteamOwnerID',
+ placeholder: '0',
+ type: 'InputText',
+ description: 'schema.generic.steamid64',
+ validator: Validators.steamid
+ }
+ ]
+ },
+ {
+ legend: 'schema.trading',
+ advanced: true,
+ fields: [
+ {
+ label: 'MaxTradeHoldDuration',
+ field: 'MaxTradeHoldDuration',
+ placeholder: 15,
+ type: 'InputNumber',
+ validator: Validators.byte
+ }
+ ]
+ },
+ {
+ legend: 'schema.customization',
+ advanced: true,
+ fields: [
+ {
+ type: 'InputCheckbox',
+ field: 'AutoRestart',
+ label: 'AutoRestart',
+ defaultValue: true
+ },
+ {
+ label: 'Blacklist',
+ field: 'Blacklist',
+ type: 'InputSet',
+ validator: Validators.uint
+ },
+ {
+ field: 'CommandPrefix',
+ label: 'CommandPrefix',
+ type: 'InputText',
+ placeholder: '!'
+ },
+ {
+ label: 'CurrentCulture',
+ field: 'CurrentCulture',
+ type: 'InputText',
+ placeholder: 'en-US'
+ },
+ {
+ type: 'InputCheckbox',
+ field: 'Statistics',
+ label: 'Statistics',
+ defaultValue: true
+ }
+ ]
+ },
+ {
+ legend: 'schema.remote_access',
+ advanced: true,
+ fields: [
+ {
+ label: 'Headless',
+ field: 'Headless',
+ defaultValue: false,
+ type: 'InputCheckbox'
+ },
+ {
+ label: 'IPC',
+ field: 'IPC',
+ defaultValue: false,
+ type: 'InputCheckbox'
+ },
+ {
+ label: 'IPCPassword',
+ field: 'IPCPassword',
+ placeholder: '',
+ type: 'InputPassword'
+ },
+ {
+ label: 'IPCPrefixes',
+ field: 'IPCPrefixes',
+ type: 'InputSet'
+ }
+ ]
+ },
+ {
+ legend: 'schema.connection',
+ advanced: true,
+ fields: [
+ {
+ label: 'ConnectionTimeout',
+ field: 'ConnectionTimeout',
+ placeholder: 60,
+ type: 'InputNumber',
+ validator: Validators.byte
+ },
+ {
+ type: 'InputFlag',
+ label: 'SteamProtocols',
+ field: 'SteamProtocols',
+ values: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'TCP' },
+ { value: 2, name: 'UDP' },
+ { value: 4, name: 'WebSocket' }
+ ],
+ defaultValue: 0,
+ advanced: true
+ },
+ {
+ label: 'WebProxy',
+ field: 'WebProxy',
+ placeholder: '',
+ type: 'InputText'
+ },
+ {
+ label: 'WebProxyPassword',
+ field: 'WebProxyPassword',
+ placeholder: '',
+ type: 'InputPassword'
+ },
+ {
+ label: 'WebProxyUsername',
+ field: 'WebProxyUsername',
+ placeholder: '',
+ type: 'InputText'
+ }
+ ]
+ },
+ {
+ legend: 'schema.performance',
+ advanced: true,
+ fields: [
+ {
+ label: 'ConfirmationsLimiterDelay',
+ field: 'ConfirmationsLimiterDelay',
+ type: 'InputNumber',
+ placeholder: 10,
+ validator: Validators.byte
+ },
+ {
+ label: 'FarmingDelay',
+ field: 'FarmingDelay',
+ type: 'InputNumber',
+ placeholder: 15,
+ validator: Validators.byte
+ },
+ {
+ label: 'GiftsLimiterDelay',
+ field: 'GiftsLimiterDelay',
+ type: 'InputNumber',
+ placeholder: 1,
+ validator: Validators.byte
+ },
+ {
+ label: 'IdleFarmingPeriod',
+ field: 'IdleFarmingPeriod',
+ type: 'InputNumber',
+ placeholder: 8,
+ validator: Validators.byte
+ },
+ {
+ label: 'InventoryLimiterDelay',
+ field: 'InventoryLimiterDelay',
+ type: 'InputNumber',
+ placeholder: 3,
+ validator: Validators.byte
+ },
+ {
+ label: 'LoginLimiterDelay',
+ field: 'LoginLimiterDelay',
+ type: 'InputNumber',
+ placeholder: 10,
+ validator: Validators.byte
+ },
+ {
+ label: 'MaxFarmingTime',
+ field: 'MaxFarmingTime',
+ type: 'InputNumber',
+ placeholder: 10,
+ validator: Validators.byte
+ },
+ {
+ label: 'OptimizationMode',
+ field: 'OptimizationMode',
+ type: 'InputSelect',
+ options: [
+ { value: 0, name: 'MaxPerformance' },
+ { value: 1, name: 'MinMemoryUsage' }
+ ],
+ defaultValue: 0
+ },
+ {
+ label: 'WebLimiterDelay',
+ field: 'WebLimiterDelay',
+ type: 'InputNumber',
+ placeholder: 200,
+ validator: Validators.ushort
+ }
+ ]
+ },
+ {
+ legend: 'schema.updates',
+ advanced: true,
+ fields: [
+ {
+ label: 'UpdateChannel',
+ field: 'UpdateChannel',
+ type: 'InputSelect',
+ options: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'Stable' },
+ { value: 2, name: 'Experimental' }
+ ],
+ defaultValue: 1
+ },
+ {
+ label: 'UpdatePeriod',
+ field: 'UpdatePeriod',
+ type: 'InputNumber',
+ placeholder: 24,
+ validator: Validators.byte
+ }
+ ]
+ },
+ {
+ legend: 'schema.advanced',
+ advanced: true,
+ fields: [
+ {
+ label: 'Debug',
+ field: 'Debug',
+ defaultValue: false,
+ type: 'InputCheckbox'
+ }
+ ]
+ }
+ ],
+ bot: [
+ {
+ legend: 'schema.basic',
+ fields: [
+ {
+ type: 'InputText',
+ label: 'Name',
+ field: 'name',
+ required: true,
+ description: 'schema.bot.name.description'
+ },
+ {
+ type: 'InputText',
+ label: 'SteamLogin',
+ field: 'SteamLogin',
+ description: 'schema.bot.SteamLogin.description'
+ },
+ {
+ type: 'InputPassword',
+ label: 'SteamPassword',
+ field: 'SteamPassword',
+ description: 'schema.bot.SteamPassword.description'
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'Enabled',
+ field: 'Enabled',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'Paused',
+ field: 'Paused',
+ defaultValue: false,
+ advanced: true
+ },
+ {
+ type: 'InputText',
+ label: 'SteamParentalPIN',
+ field: 'SteamParentalPIN',
+ placeholder: 0,
+ validator: Validators.parentalPIN,
+ advanced: true
+ },
+ {
+ type: 'InputFlag',
+ label: 'BotBehaviour',
+ field: 'BotBehaviour',
+ values: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'RejectInvalidFriendInvites' },
+ { value: 2, name: 'RejectInvalidTrades' },
+ { value: 4, name: 'RejectInvalidGroupInvites' }
+ ],
+ defaultValue: 0,
+ advanced: true
+ }
+ ]
+ },
+ {
+ legend: 'schema.access',
+ advanced: true,
+ fields: [
+ {
+ type: 'InputText',
+ label: 'SteamMasterClanID',
+ field: 's_SteamMasterClanID',
+ placeholder: 0,
+ validator: Validators.masterClan
+ },
+ {
+ type: 'InputMap',
+ label: 'SteamUserPermissions',
+ field: 'SteamUserPermissions',
+ keyPlaceholder: 'SteamID64',
+ values: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'FamilySharing' },
+ { value: 2, name: 'Operator' },
+ { value: 3, name: 'Master' }
+ ],
+ defaultValue: 0,
+ keyValidator: Validators.steamid
+ }
+ ]
+ },
+ {
+ legend: 'schema.trading',
+ advanced: true,
+ fields: [
+ {
+ type: 'InputCheckbox',
+ label: 'AcceptGifts',
+ field: 'AcceptGifts',
+ defaultValue: false
+ },
+ {
+ type: 'InputText',
+ label: 'SteamTradeToken',
+ field: 'SteamTradeToken',
+ validator: Validators.tradeToken
+ },
+ {
+ type: 'InputFlag',
+ label: 'TradingPreferences',
+ field: 'TradingPreferences',
+ values: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'AcceptDonations' },
+ { value: 2, name: 'SteamTradeMatcher' },
+ { value: 4, name: 'MatchEverything' },
+ { value: 8, name: 'DontAcceptBotTrades' }
+ ],
+ defaultValue: 0
+ },
+ {
+ type: 'InputSet',
+ label: 'LootableTypes',
+ field: 'LootableTypes',
+ values: [
+ { value: 0, name: 'Unknown' },
+ { value: 1, name: 'BoosterPack' },
+ { value: 2, name: 'Emoticon' },
+ { value: 3, name: 'FoilTradingCard' },
+ { value: 4, name: 'ProfileBackground' },
+ { value: 5, name: 'TradingCard' },
+ { value: 6, name: 'SteamGems' }
+ ],
+ defaultValue: 0
+ },
+ {
+ type: 'InputSet',
+ label: 'MatchableTypes',
+ field: 'MatchableTypes',
+ values: [
+ { value: 0, name: 'Unknown' },
+ { value: 1, name: 'BoosterPack' },
+ { value: 2, name: 'Emoticon' },
+ { value: 3, name: 'FoilTradingCard' },
+ { value: 4, name: 'ProfileBackground' },
+ { value: 5, name: 'TradingCard' },
+ { value: 6, name: 'SteamGems' }
+ ],
+ defaultValue: 0
+ }
+ ]
+ },
+ {
+ legend: 'schema.farming',
+ advanced: true,
+ fields: [
+ {
+ label: 'HoursUntilCardDrops',
+ field: 'HoursUntilCardDrops',
+ type: 'InputNumber',
+ placeholder: 3,
+ validator: Validators.byte
+ },
+ {
+ type: 'InputSelect',
+ label: 'FarmingOrder',
+ field: 'FarmingOrder',
+ options: [
+ { value: 0, name: 'Unordered' },
+ { value: 1, name: 'AppIDsAscending' },
+ { value: 2, name: 'AppIDsDescending' },
+ { value: 3, name: 'CardDropsAscending' },
+ { value: 4, name: 'CardDropsDescending' },
+ { value: 5, name: 'HoursAscending' },
+ { value: 6, name: 'HoursDescending' },
+ { value: 7, name: 'NamesAscending' },
+ { value: 8, name: 'NamesDescending' },
+ { value: 9, name: 'Random' },
+ { value: 10, name: 'BadgeLevelsAscending' },
+ { value: 11, name: 'BadgeLevelsDescending' },
+ { value: 12, name: 'RedeemDateTimesAscending' },
+ { value: 13, name: 'RedeemDateTimesDescending' }
+ ],
+ defaultValue: 0
+ },
+ {
+ type: 'InputNumber',
+ label: 'SendTradePeriod',
+ field: 'SendTradePeriod',
+ placeholder: 0,
+ validator: Validators.byte
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'AutoSteamSaleEvent',
+ field: 'AutoSteamSaleEvent',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'FarmOffline',
+ field: 'FarmOffline',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'HandleOfflineMessages',
+ field: 'HandleOfflineMessages',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'IdlePriorityQueueOnly',
+ field: 'IdlePriorityQueueOnly',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'IdleRefundableGames',
+ field: 'IdleRefundableGames',
+ defaultValue: true
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'SendOnFarmingFinished',
+ field: 'SendOnFarmingFinished',
+ defaultValue: false
+ },
+ {
+ type: 'InputCheckbox',
+ label: 'ShutdownOnFarmingFinished',
+ field: 'ShutdownOnFarmingFinished',
+ defaultValue: false
+ }
+ ]
+ },
+ {
+ legend: 'schema.customization',
+ advanced: true,
+ fields: [
+ {
+ type: 'InputCheckbox',
+ label: 'DismissInventoryNotifications',
+ field: 'DismissInventoryNotifications',
+ defaultValue: false
+ },
+ {
+ type: 'InputFlag',
+ label: 'RedeemingPreferences',
+ field: 'RedeemingPreferences',
+ values: [
+ { value: 0, name: 'None' },
+ { value: 1, name: 'Forwarding' },
+ { value: 2, name: 'Distributing' },
+ { value: 4, name: 'KeepMissingGames' }
+ ],
+ defaultValue: 0
+ },
+ {
+ type: 'InputSet',
+ label: 'GamesPlayedWhileIdle',
+ field: 'GamesPlayedWhileIdle',
+ validator: Validators.uint
+ },
+ {
+ type: 'InputText',
+ label: 'CustomGamePlayedWhileFarming',
+ field: 'CustomGamePlayedWhileFarming'
+ },
+ {
+ type: 'InputText',
+ label: 'CustomGamePlayedWhileIdle',
+ field: 'CustomGamePlayedWhileIdle'
+ }
+ ]
+ }
+ ]
+ },
+ 'V3.1.2.5-V3.1.3.4': {
asf: [
{
legend: 'schema.basic',
diff --git a/appveyor.yml b/appveyor.yml
index c96b5978f..387d9f957 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -14,7 +14,7 @@ clone_depth: 10
environment:
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
- NET_CORE_VERSION: netcoreapp2.0
+ NET_CORE_VERSION: netcoreapp2.1
NET_FRAMEWORK_VERSION: net472
SINGLE_VARIANTS: generic-netf # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs!
VARIANTS: generic linux-arm linux-x64 osx-x64 win-x64 # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs!
@@ -91,7 +91,8 @@ after_test:
}
if ($variant -like 'generic*') {
- dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" /nologo "/p:ASFVariant=$variant"
+ # TODO: Workaround https://github.com/mono/linker/issues/286 until it's resolved
+ dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" /nologo "/p:ASFVariant=$variant" "/p:LinkDuringPublish=false"
} else {
dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" -r "$variant" /nologo "/p:ASFVariant=$variant" "/p:CrossGenDuringPublish=false"
}
diff --git a/wiki b/wiki
index 0d126d9a0..5fa90d03a 160000
--- a/wiki
+++ b/wiki
@@ -1 +1 @@
-Subproject commit 0d126d9a09fff31a7860ddbe9ad05ccffe51c480
+Subproject commit 5fa90d03a5b8febf321ab214210c9fee82ecd8c9