diff --git a/ArchiSteamFarm/BotConfig.cs b/ArchiSteamFarm/BotConfig.cs index 17c8da449..b16f7989b 100644 --- a/ArchiSteamFarm/BotConfig.cs +++ b/ArchiSteamFarm/BotConfig.cs @@ -174,6 +174,7 @@ namespace ArchiSteamFarm { internal bool IsSteamParentalCodeSet { get; private set; } internal bool IsSteamPasswordSet { get; private set; } internal bool ShouldSerializeEverything { private get; set; } = true; + internal bool ShouldSerializeHelperProperties { private get; set; } = true; [JsonProperty] internal string SteamLogin { @@ -434,7 +435,7 @@ namespace ArchiSteamFarm { public bool ShouldSerializeSendOnFarmingFinished() => ShouldSerializeEverything || (SendOnFarmingFinished != DefaultSendOnFarmingFinished); public bool ShouldSerializeSendTradePeriod() => ShouldSerializeEverything || (SendTradePeriod != DefaultSendTradePeriod); public bool ShouldSerializeShutdownOnFarmingFinished() => ShouldSerializeEverything || (ShutdownOnFarmingFinished != DefaultShutdownOnFarmingFinished); - public bool ShouldSerializeSSteamMasterClanID() => ShouldSerializeEverything; // We never serialize helper properties + public bool ShouldSerializeSSteamMasterClanID() => ShouldSerializeEverything || (ShouldSerializeHelperProperties && (SteamMasterClanID != DefaultSteamMasterClanID)); public bool ShouldSerializeSteamLogin() => ShouldSerializeSensitiveDetails && (ShouldSerializeEverything || (SteamLogin != DefaultSteamLogin)); public bool ShouldSerializeSteamMasterClanID() => ShouldSerializeEverything || (SteamMasterClanID != DefaultSteamMasterClanID); public bool ShouldSerializeSteamParentalCode() => ShouldSerializeSensitiveDetails && (ShouldSerializeEverything || (SteamParentalCode != DefaultSteamParentalCode)); diff --git a/ArchiSteamFarm/GlobalConfig.cs b/ArchiSteamFarm/GlobalConfig.cs index 0209c533f..b365952b0 100644 --- a/ArchiSteamFarm/GlobalConfig.cs +++ b/ArchiSteamFarm/GlobalConfig.cs @@ -185,6 +185,7 @@ namespace ArchiSteamFarm { internal bool IsWebProxyPasswordSet { get; private set; } internal bool ShouldSerializeEverything { private get; set; } = true; + internal bool ShouldSerializeHelperProperties { private get; set; } = true; [JsonProperty(Required = Required.DisallowNull)] internal ulong SteamOwnerID { get; private set; } = DefaultSteamOwnerID; @@ -348,7 +349,7 @@ namespace ArchiSteamFarm { public bool ShouldSerializeMaxFarmingTime() => ShouldSerializeEverything || (MaxFarmingTime != DefaultMaxFarmingTime); public bool ShouldSerializeMaxTradeHoldDuration() => ShouldSerializeEverything || (MaxTradeHoldDuration != DefaultMaxTradeHoldDuration); public bool ShouldSerializeOptimizationMode() => ShouldSerializeEverything || (OptimizationMode != DefaultOptimizationMode); - public bool ShouldSerializeSSteamOwnerID() => ShouldSerializeEverything; // We never serialize helper properties + public bool ShouldSerializeSSteamOwnerID() => ShouldSerializeEverything || (ShouldSerializeHelperProperties && (SteamOwnerID != DefaultSteamOwnerID)); public bool ShouldSerializeStatistics() => ShouldSerializeEverything || (Statistics != DefaultStatistics); public bool ShouldSerializeSteamMessagePrefix() => ShouldSerializeEverything || (SteamMessagePrefix != DefaultSteamMessagePrefix); public bool ShouldSerializeSteamOwnerID() => ShouldSerializeEverything || (SteamOwnerID != DefaultSteamOwnerID); diff --git a/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs b/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs index 756ee90a1..22fbc813b 100644 --- a/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs +++ b/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs @@ -71,6 +71,7 @@ namespace ArchiSteamFarm.IPC.Controllers.Api { } request.GlobalConfig.ShouldSerializeEverything = false; + request.GlobalConfig.ShouldSerializeHelperProperties = false; string filePath = Path.Combine(SharedInfo.ConfigDirectory, SharedInfo.GlobalConfigFileName); diff --git a/ArchiSteamFarm/IPC/Controllers/Api/BotController.cs b/ArchiSteamFarm/IPC/Controllers/Api/BotController.cs index e6c9a239a..0de25760e 100644 --- a/ArchiSteamFarm/IPC/Controllers/Api/BotController.cs +++ b/ArchiSteamFarm/IPC/Controllers/Api/BotController.cs @@ -104,6 +104,7 @@ namespace ArchiSteamFarm.IPC.Controllers.Api { } request.BotConfig.ShouldSerializeEverything = false; + request.BotConfig.ShouldSerializeHelperProperties = false; string filePath = Path.Combine(SharedInfo.ConfigDirectory, botName + SharedInfo.ConfigExtension);