Advertisement
Guest User

Untitled

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