Advertisement
Guest User

Untitled

a guest
May 25th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.07 KB | None | 0 0
  1. using SteamKit2;
  2. using SteamTrade;
  3. using SteamTrade.TradeOffer;
  4. using System;
  5. using System.Collections.Generic;
  6. using TradeAsset = SteamTrade.TradeOffer.TradeOffer.TradeStatusUser.TradeAsset;
  7.  
  8. namespace SteamBot
  9. {
  10.     public class TradeOfferUserHandler : UserHandler
  11.     {
  12.  
  13.         private readonly GenericInventory mySteamInventory;
  14.         private readonly GenericInventory OtherSteamInventory;
  15.  
  16.         public TradeOfferUserHandler(Bot bot, SteamID sid) : base(bot, sid) {}
  17.  
  18.         public override void OnNewTradeOffer(TradeOffer offer)
  19.         {
  20.             if (true)
  21.             {
  22.                 //parse inventories of bot and other partner
  23.                 //either with webapi or generic inventory
  24.                 //Bot.GetInventory();
  25.                 //Bot.GetOtherInventory(OtherSID);
  26.  
  27.                 var myItems = offer.Items.GetMyItems();
  28.                 var theirItems = offer.Items.GetTheirItems();
  29.                 Log.Info("They want " + myItems.Count + " of my items.");
  30.                 Log.Info("And I will get " + theirItems.Count + " of their items.");
  31.  
  32.                 foreach (var item in myItems)
  33.                 {
  34.                     GenericInventory.ItemDescription tmpInfo = mySteamInventory.getDescription((ulong)item.AssetId);
  35.  
  36.                     Bot.log.Warn("Name: " + tmpInfo.market_hash_name);
  37.                 }
  38.                 //do validation logic etc
  39.                 if (DummyValidation(myItems, theirItems))
  40.                 {
  41.                     string tradeid;
  42.                     if (offer.Accept(out tradeid))
  43.                     {
  44.                         Log.Success("Accepted trade offer successfully : Trade ID: " + tradeid);
  45.                         Console.WriteLine("Accepted a trade that had " + theirItems.Count + " items in it!");
  46.                     }
  47.                 }
  48.                 else
  49.                 {
  50.                     if (offer.Decline())
  51.                     {
  52.                         Log.Info("Declined trade offer : " + offer.TradeOfferId + " from " + OtherSID.ConvertToUInt64());
  53.                         Console.WriteLine("Declined a trade that asked for " + myItems.Count + " of my items :(");
  54.                     }
  55.  
  56.                 }
  57.             }
  58.             else
  59.             {
  60.                 //we don't know this user so we can decline
  61.                 if (offer.Decline())
  62.                 {
  63.                     Log.Info("Declined trade offer : " + offer.TradeOfferId + " from untrusted user " + OtherSID.ConvertToUInt64());
  64.                 }
  65.             }
  66.         }
  67.         private bool DummyValidation(List<TradeAsset> myAssets, List<TradeAsset> theirAssets)
  68.         {
  69.  
  70.             if (myAssets.Count == 0)
  71.             {
  72.  
  73.  
  74.                 return true;
  75.             }
  76.             else
  77.             {
  78.                 // foreach (TradeAsset asset in theirAssets)
  79.                 // {
  80.                 //     var inventoryItem = OtherInventory.GetItem((ulong)asset.AssetId);
  81.                 //     Console.WriteLine(inventoryItem);
  82.                 //
  83.  
  84.  
  85.                 return true;
  86.             }
  87.  
  88.             return false;
  89.         }
  90.  
  91.         public override void OnMessage(string message, EChatEntryType type)
  92.         {
  93.             if (IsAdmin)
  94.             {
  95.                 //creating a new trade offer
  96.                 var offer = Bot.NewTradeOffer(OtherSID);
  97.  
  98.                 //offer.Items.AddMyItem(0, 0, 0);
  99.                 if (offer.Items.NewVersion)
  100.                 {
  101.                     string newOfferId;
  102.                     if (offer.Send(out newOfferId))
  103.                     {
  104.                         Log.Success("Trade offer sent : Offer ID " + newOfferId);
  105.                     }
  106.                 }
  107.  
  108.                 //creating a new trade offer with token
  109.                 var offerWithToken = Bot.NewTradeOffer(OtherSID);
  110.  
  111.                 //offer.Items.AddMyItem(0, 0, 0);
  112.                 if (offerWithToken.Items.NewVersion)
  113.                 {
  114.                     string newOfferId;
  115.                     // "token" should be replaced with the actual token from the other user
  116.                     if (offerWithToken.SendWithToken(out newOfferId, "token"))
  117.                     {
  118.                         Log.Success("Trade offer sent : Offer ID " + newOfferId);
  119.                     }
  120.                 }
  121.             }
  122.         }
  123.  
  124.         public override bool OnGroupAdd() { return false; }
  125.  
  126.         public override bool OnFriendAdd() { return IsAdmin; }
  127.  
  128.         public override void OnFriendRemove() { }
  129.  
  130.         public override void OnLoginCompleted() { }
  131.  
  132.         public override bool OnTradeRequest() { return false; }
  133.  
  134.         public override void OnTradeError(string error) { }
  135.  
  136.         public override void OnTradeTimeout() { }
  137.  
  138.         public override void OnTradeSuccess() { }
  139.  
  140.         public override void OnTradeInit() { }
  141.  
  142.         public override void OnTradeAddItem(Schema.Item schemaItem, Inventory.Item inventoryItem) { }
  143.  
  144.         public override void OnTradeRemoveItem(Schema.Item schemaItem, Inventory.Item inventoryItem) { }
  145.  
  146.         public override void OnTradeMessage(string message) { }
  147.  
  148.         public override void OnTradeReady(bool ready) { }
  149.  
  150.         public override void OnTradeAccept() { }
  151.  
  152.  
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement