A good trade was ignored
woctezuma opened this issue · comments
Checklist
- I read and understood ASF's Contributing guidelines
- I also read Setting-up and FAQ, I don't need help, this is a bug report
- This is not a duplicate of an existing issue
- I don't own more than 10 accounts in total
- I'm not using custom plugins
- This is not a question
- This is not a technical issue
- This is not ASF-ui problem
ASF version
Latest stable release
ASF variant
generic (with latest .NET runtime)
Bug description
I have received this trade of 3 unmarketable cards in exchange of 3 of mine of the same set.
This trade would:
- pick 1 card out of 2 duplicate n°1 cards
- pick 2 cards out of 6 duplicate n°2 cards
- provide the 3 cards which I am missing to complete the badge at level 3.
Expected behavior
The trade should have been accepted, because it is good.
Trade is good if our progress towards set completion advances. Example: A A (before) -> A B (after)
Actual behavior
2024-05-13 07:37:20|dotnet-1196|DEBUG|AW|ShouldAcceptTrade() L'offre d'échange 7005963806 est déterminée comme étant Rejected à cause de IsTradeNeutralOrBetter.
2024-05-13 07:37:20|dotnet-1196|INFO|AW|ParseTrade() Offre ignorée : 7005963806
Steps to reproduce
No response
Possible reason/solution
No response
Can you help us with this bug report?
Somehow, I can test and offer feedback, but can't code
Full log.txt recorded during reproducing the problem
2024-05-13 07:36:33|dotnet-1196|INFO|ASF|InitCore() ArchiSteamFarm V6.0.2.6 (generic/1404ce0eae88451988ae6a5727eb0ce1 | .NET 8.0.0; win-x64; Microsoft Windows 10.0.19045) in [C:\Applis\ASF-generic]
2024-05-13 07:36:33|dotnet-1196|INFO|ASF|InitCore() Copyright © 2015-2024 JustArchiNET
2024-05-13 07:36:34|dotnet-1196|WARN|ASF|InitGlobalConfigAndLanguage() Le fichier de configuration de config\ASF.json sera migré vers la dernière syntaxe...
2024-05-13 07:36:34|dotnet-1196|INFO|ASF|InitGlobalConfigAndLanguage() Fait !
2024-05-13 07:36:38|dotnet-1196|INFO|ASF|InitPlugins() Initialisation de Plugins...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement ASFEnhance V2.1.2.1...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "ASFEnhance" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement CaseInsensitiveASF V0.4.1.0...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|OnLoaded() Case Insensitive ASF Plugin by Ryzhehvost, powered by ginger cats
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "CaseInsensitiveASF" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement CommandlessRedeem V0.5.2.0...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|OnLoaded() Commandless Redeem Plugin by Ryzhehvost, powered by ginger cats
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "CommandlessRedeem" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement ItemsMatcherPlugin V6.0.2.6...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "ItemsMatcherPlugin" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement MobileAuthenticatorPlugin V6.0.2.6...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "MobileAuthenticatorPlugin" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement SteamTokenDumperPlugin V6.0.2.6...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "SteamTokenDumperPlugin" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement FreePackages V1.4.5.0...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|OnLoaded() Free Packages ASF Plugin by Citrinate
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "FreePackages" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Chargement BoosterManager V2.9.0.1...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|OnLoaded() BoosterManager ASF Plugin by Citrinate
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() "BoosterManager" a été chargée avec succès !
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Vous avez chargé un ou plusieurs plugins personnalisés dans ASF. Étant donné que nous ne pouvons pas offrir de support pour les configurations moddées, veuillez contacter les développeurs appropriés des plugins que vous avez décidé d'utiliser en cas de problème.
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Le plugin FreePackages/FreePackages a été enregistré et activé pour les mises à jour automatiques.
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|InitPlugins() Le plugin BoosterManager/BoosterManager a été enregistré et activé pour les mises à jour automatiques.
2024-05-13 07:36:39|dotnet-1196|WARN|ASF|InitPlugins() Les plugins personnalisés ont été enregistrés pour les mises à jour automatiques. L'équipe ASF voudrait vous rappeler que, pour votre propre sécurité, vous ne devriez activer les mises à jour automatiques que des groupes de confiance. Si vous n'aviez pas l'intention de le faire, vous pouvez désactiver les mises à jour de plugin dans la configuration globale d'ASF.
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdateAndRestart() ASF recherchera automatiquement de nouvelles mises à jour tous les 1 jour.
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdateASF() Recherche d'une nouvelle version...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdateASF() Version locale : 6.0.2.6 | Version la plus récente : 6.0.2.6
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdatePlugins() Vérification des mises à jour du plugin...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdatePlugin() Vérification de la mise à jour du plugin FreePackages...
2024-05-13 07:36:39|dotnet-1196|INFO|ASF|UpdatePlugin() Vérification de la mise à jour du plugin BoosterManager...
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|GetTargetReleaseURL() Aucune mise à jour disponible pour le plugin FreePackages : 1.4.5.0 † 1.4.5.0.
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|GetTargetReleaseURL() Aucune mise à jour disponible pour le plugin BoosterManager : 2.9.0.1 † 2.9.0.1.
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|Load() Chargement du cache STD global...
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|OnASFInit()
==========================================================================
█████╗ ███████╗███████╗███████╗███╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗
██╔══██╗██╔════╝██╔════╝██╔════╝████╗ ██║██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝
███████║███████╗█████╗ █████╗ ██╔██╗ ██║███████║███████║██╔██╗ ██║██║ █████╗
██╔══██║╚════██║██╔══╝ ██╔══╝ ██║╚██╗██║██╔══██║██╔══██║██║╚██╗██║██║ ██╔══╝
██║ ██║███████║██║ ███████╗██║ ╚████║██║ ██║██║ ██║██║ ╚████║╚██████╗███████╗
╚═╝ ╚═╝╚══════╝╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝
ASFEnhance Version 2.1.2.1
Developed by Chr_, email chr@chrxw.com
Donate: https://afdian.net/@chr233
未加载外部模块
使用 "PLUGINVERSION [插件名]" / "PV [插件名]" 检查插件可用更新
使用 "PLUGINUPDATE [插件名]" / "PU [插件名]" 自动更新指定插件
不指定插件名时, 可为所有支持的插件检查更新 / 安装更新
2024-05-13 07:36:40|dotnet-1196|WARN|ASF|OnASFInit()
ASFEnhance: ASFEnhance.EULA not agreed, some features is disabled
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|Load() Validation de l'intégrité du cache STD global...
2024-05-13 07:36:40|dotnet-1196|INFO|ASF|OnASFInit() SteamTokenDumperPlugin est actuellement désactivé selon votre configuration. Si vous souhaitez aider SteamDB dans la soumission de données, veuillez consulter notre wiki.
2024-05-13 07:36:41|dotnet-1196|INFO|ASF|StartInteractiveConsole() La console interactive est maintenant active, tapez 'c' pour entrer en mode commande.
2024-05-13 07:36:41|dotnet-1196|INFO|ASF|Start() Démarrage du serveur IPC...
2024-05-13 07:36:42|dotnet-1196|INFO|Microsoft.Hosting.Lifetime|Now listening on: http://localhost:1242
2024-05-13 07:36:42|dotnet-1196|INFO|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
2024-05-13 07:36:42|dotnet-1196|INFO|Microsoft.Hosting.Lifetime|Hosting environment: Production
2024-05-13 07:36:42|dotnet-1196|INFO|Microsoft.Hosting.Lifetime|Content root path: C:\Applis\ASF-generic\
2024-05-13 07:36:42|dotnet-1196|INFO|ASF|Start() Serveur IPC prêt !
2024-05-13 07:36:42|dotnet-1196|ERROR|ASF|Load() Vous utilisez le paramètre AES de la propriété SteamPassword , mais vous n'avez pas fourni de --cryptkey personnalisé. Cela casse complètement la protection, car ASF est forcé d’utiliser sa propre clé (connue). Vous devez fournir une --cryptkey personnalisée pour utiliser les avantages de sécurité offerts par ce paramètre.
2024-05-13 07:36:43|dotnet-1196|ERROR|ASF|Load() Vous utilisez le paramètre AES de la propriété SteamPassword , mais vous n'avez pas fourni de --cryptkey personnalisé. Cela casse complètement la protection, car ASF est forcé d’utiliser sa propre clé (connue). Vous devez fournir une --cryptkey personnalisée pour utiliser les avantages de sécurité offerts par ce paramètre.
2024-05-13 07:36:43|dotnet-1196|INFO|AW|OnBotInitModules() Enable Free Packages : True
328060,
591960,
704040,
444640,
298160,
363970,
1174500
]
2024-05-13 07:36:43|dotnet-1196|INFO|AW|OnBotInitModules() Games To Booster : [
332070
]
2024-05-13 07:36:43|dotnet-1196|INFO|AW|Start() Démarrage...
2024-05-13 07:37:13|dotnet-1196|INFO|AW|Connect() Connexion...
2024-05-13 07:37:13|dotnet-1196|INFO|AW|OnConnected() Connecté à Steam !
2024-05-13 07:37:13|dotnet-1196|INFO|AW|OnConnected() Connexion en cours...
2024-05-13 07:37:14|dotnet-1196|INFO|AW|OnLoggedOn() ***/*** connecté avec succès.
2024-05-13 07:37:14|dotnet-1196|INFO|AW|Init() Succès !
2024-05-13 07:37:15|dotnet-1196|INFO|AW|IsAnythingToFarm() Vérification de la première page des badges...
2024-05-13 07:37:16|dotnet-1196|INFO|AW|UpdateBoosterInfos() Booster information updated
2024-05-13 07:37:16|dotnet-1196|INFO|AW|Run() Next booster will be crafted at 09:54:22
2024-05-13 07:37:16|dotnet-1196|INFO|AW|IsAnythingToFarm() Vérification des autres pages de badges...
2024-05-13 07:37:17|dotnet-1196|INFO|AW|Farm() Nous avons un total de 2 jeux (5 cartes) restants à traiter (~2 heures, 30 minutes restants)...
2024-05-13 07:37:17|dotnet-1196|INFO|AW|Farm() Algorithme de collecte choisi : Simple
2024-05-13 07:37:17|dotnet-1196|INFO|AW|FarmSolo() Collecte en cours : 1644940 (Loddlenaut)
2024-05-13 07:37:18|dotnet-1196|INFO|AW|ShouldFarm() Progression de la collecte pour 1644940 (Loddlenaut) : 2 cartes restantes
2024-05-13 07:37:18|dotnet-1196|INFO|AW|FarmCards() Collecte toujours en cours : 1644940 (Loddlenaut)
2024-05-13 07:37:18|dotnet-1196|INFO|AW|OnPersonaState() Annonce de *** (***) avec l'inventaire réalisé à partir de 400 au total sur la liste...
2024-05-13 07:37:18|dotnet-1196|INFO|AW|OnPersonaState() Succès !
2024-05-13 07:37:20|dotnet-1196|DEBUG|AW|ShouldAcceptTrade() L'offre d'échange 7005963806 est déterminée comme étant Rejected à cause de IsTradeNeutralOrBetter.
2024-05-13 07:37:20|dotnet-1196|INFO|AW|ParseTrade() Offre ignorée : 7005963806
2024-05-13 07:52:34|dotnet-1196|INFO|AW|ShouldFarm() Progression de la collecte pour 1644940 (Loddlenaut) : 2 cartes restantes
2024-05-13 07:52:34|dotnet-1196|INFO|AW|FarmCards() Collecte toujours en cours : 1644940 (Loddlenaut)
2024-05-13 07:57:19|dotnet-1196|INFO|Microsoft.Hosting.Lifetime|Application is shutting down...
Global ASF.json config file
{
"MaxTradeHoldDuration": 0,
"PluginsUpdateList": [
"FreePackages",
"CommandlessRedeem",
"BoosterManager",
"ASFEnhance",
"CaseInsensitiveASF"
],
"SteamOwnerID": ***,
"SteamTokenDumperPluginEnabled": false,
"ASFEnhance": {
"EULA": false,
"Statistic": false,
"AutoClaimItemBotNames": "ASF",
"DisabledCmds": [
"ga"
]
}
}
BotName.json config of all affected bot instances
{
"BotBehaviour": 40,
"Enabled": true,
"FarmingPreferences": 128,
"HoursUntilCardDrops": 0,
"OnlineStatus": 7,
"PasswordFormat": 1,
"RedeemingPreferences": 5,
"RemoteCommunication": 2,
"SteamLogin": "***",
"SteamMasterClanID": ***,
"SteamPassword": "***",
"TradingPreferences": 3,
"EnableFreePackages": true,
"FreePackagesFilter": {
"PlaytestMode": 3,
"IgnoreFreeWeekends": true,
"IgnoredTypes": [
"Demo"
]
},
"GamesToBooster": [
332070
]
}
Additional info
No response
I will try again without custom plugins later, but I don't expect a change of behavior.
No need, I've confirmed it with unit test on our side. I have no clue what's wrong yet, but it's enough to move the issue forward.
Thank you a lot for reporting this issue, I've managed to add unit test verifying that what you stated above is correct, and ASF behaviour was wrong.
When excessive amount of "missing amounts", so items in the set was missing on our side, there was a possibility for our logic to classify a good trade as bad one, because we didn't fill in enough holes, as the subtraction in the condition was calculated on each loop rather than once initially.
Since this could only worsen the neutrality score, but never improve it (as the amounts were sorted ascending), there was no abusive possibility due to that, only ignoring otherwise valid trades classifying them as worse than they were in reality.
Fixed in V6.0.3.1 which I'll release in a second.
Thank you! Have a nice week!