diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs index 3a6b9dc35..add93f9ac 100644 --- a/ArchiSteamFarm/ArchiHandler.cs +++ b/ArchiSteamFarm/ArchiHandler.cs @@ -24,6 +24,8 @@ using SteamKit2; using SteamKit2.Internal; +using System.Collections.Generic; +using System.IO; namespace ArchiSteamFarm { internal sealed class ArchiHandler : ClientMsgHandler { @@ -42,14 +44,21 @@ namespace ArchiSteamFarm { internal EResult Result { get; private set; } internal EPurchaseResult PurchaseResult { get; private set; } - internal int ErrorCode { get; private set; } - internal byte[] ReceiptInfo { get; private set; } + internal KeyValue ReceiptInfo { get; private set; } + internal HashSet Items { get; private set; } = new HashSet(); internal PurchaseResponseCallback(CMsgClientPurchaseResponse body) { Result = (EResult) body.eresult; - ErrorCode = body.purchase_result_details; - ReceiptInfo = body.purchase_receipt_info; - PurchaseResult = (EPurchaseResult) ErrorCode; + PurchaseResult = (EPurchaseResult) body.purchase_result_details; + + ReceiptInfo = new KeyValue(); + using (MemoryStream ms = new MemoryStream(body.purchase_receipt_info)) { + if (ReceiptInfo.TryReadAsBinary(ms)) { + foreach (KeyValue lineItem in ReceiptInfo["lineitems"].Children) { + Items.Add(lineItem["ItemDescription"].AsString()); + } + } + } } } diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index 89bbaa759..fecab1f91 100644 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -594,7 +594,8 @@ namespace ArchiSteamFarm { } var purchaseResult = callback.PurchaseResult; - SendMessageToUser(SteamMasterID, "Status: " + purchaseResult); + var items = callback.Items; + SendMessageToUser(SteamMasterID, "Status: " + purchaseResult + " | Items: " + string.Join(", ", items)); if (purchaseResult == ArchiHandler.PurchaseResponseCallback.EPurchaseResult.OK) { await CardsFarmer.StartFarming().ConfigureAwait(false);