public void TradeCountInventory() { Bot.main.Invoke((Action)(() => { ShowTrade = new ShowTrade(Bot, Bot.SteamFriends.GetFriendPersonaName(OtherSID)); ShowTrade.Show(); ShowTrade.Activate(); })); BackpackTF.CurrentSchema = BackpackTF.FetchSchema(); // Let's count our inventory Thread loadInventory = new Thread(() => { Console.WriteLine("Trade window opened."); Console.WriteLine("Loading all inventory items."); if (Bot.CurrentTrade == null) return; Inventory.Item[] inventory = Trade.MyInventory.Items; foreach (Inventory.Item item in inventory) { if (!item.IsNotTradeable) { var currentItem = Trade.CurrentSchema.GetItem(item.Defindex); string name = ""; string itemValue = ""; var type = Convert.ToInt32(item.Quality.ToString()); if (QualityToName(type) != "Unique") name += QualityToName(type) + " "; name += currentItem.ItemName; if (QualityToName(type) == "Unusual") { try { for (int count = 0; count < item.Attributes.Length; count++) { if (item.Attributes[count].Defindex == 134) { name += " (Effect: " + EffectToName(item.Attributes[count].FloatValue) + ")"; } } } catch (Exception) { } } if (currentItem.CraftMaterialType == "supply_crate") { for (int count = 0; count < item.Attributes.Length; count++) { name += " #" + (item.Attributes[count].FloatValue); if (item.Attributes[count].Defindex == 186) { name += " (Gifted)"; } } } name += " (Level " + item.Level + ")"; try { int size = item.Attributes.Length; for (int count = 0; count < size; count++) { if (item.Attributes[count].Defindex == 261) { string paint = ShowBackpack.PaintToName(item.Attributes[count].FloatValue); name += " (Painted: " + paint + ")"; } if (item.Attributes[count].Defindex == 186) { name += " (Gifted)"; } } } catch { // Item has no attributes... or something. } if (item.IsNotCraftable) name += " (Uncraftable)"; if (currentItem.Name == "Wrapped Gift") { // Untested! try { var containedItem = Trade.CurrentSchema.GetItem(item.ContainedItem.Defindex); var containedName = GetItemName(containedItem, item.ContainedItem, out itemValue); name += " (Contains: " + containedName + ")"; } catch (Exception ex) { Bot.Print(ex); // Guess this doesn't work :P. } } string price = Util.GetPrice(item.Defindex, currentItem.ItemQuality, item); ListInventory.Add(name, item.Id, currentItem.ImageURL, price); } } try { ShowTrade.loading = false; Bot.main.Invoke((Action)(() => ShowTrade.list_inventory.SetObjects(ListInventory.Get()))); } catch { } }); loadInventory.Start(); }