Advertisement
Guest User

Untitled

a guest
Jun 9th, 2014
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.40 KB | None | 0 0
  1. using SteamKit2;
  2. using System.Collections.Generic;
  3. using SteamTrade;
  4.  
  5. namespace SteamBot
  6. {
  7.     public class IdleUserHandler : UserHandler
  8.     {
  9.         public int ScrapPutUp;
  10.  
  11.         public IdleUserHandler (Bot bot, SteamID sid) : base(bot, sid) {}
  12.  
  13.         public override bool OnGroupAdd()
  14.         {
  15.             return false;
  16.         }
  17.  
  18.         public override bool OnFriendAdd ()
  19.         {
  20.             return false;
  21.         }
  22.  
  23.         public override void OnLoginCompleted()
  24.         {
  25.         }
  26.  
  27.         public override void OnChatRoomMessage(SteamID chatID, SteamID sender, string message)
  28.         {
  29.             Log.Info(Bot.SteamFriends.GetFriendPersonaName(sender) + ": " + message);
  30.             base.OnChatRoomMessage(chatID, sender, message);
  31.         }
  32.  
  33.         public override void OnFriendRemove () {}
  34.        
  35.         public override void OnMessage (string message, EChatEntryType type)
  36.         {
  37.             Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.ChatResponse);
  38.         }
  39.  
  40.         public override bool OnTradeRequest()
  41.         {
  42.             return true;
  43.         }
  44.        
  45.         public override void OnTradeError (string error)
  46.         {
  47.             Bot.SteamFriends.SendChatMessage (OtherSID,
  48.                                               EChatEntryType.ChatMsg,
  49.                                               "Oh, there was an error: " + error + "."
  50.                                               );
  51.             Bot.log.Warn (error);
  52.         }
  53.        
  54.         public override void OnTradeTimeout ()
  55.         {
  56.             Bot.SteamFriends.SendChatMessage (OtherSID, EChatEntryType.ChatMsg,
  57.                                               "Sorry, but you were AFK and the trade was canceled.");
  58.             Bot.log.Info ("User was kicked because he was AFK.");
  59.         }
  60.        
  61.         public override void OnTradeInit()
  62.         {
  63.             Trade.SendMessage ("Success. Please put up your items.");
  64.         }
  65.        
  66.         public override void OnTradeAddItem (Schema.Item schemaItem, Inventory.Item inventoryItem) {}
  67.        
  68.         public override void OnTradeRemoveItem (Schema.Item schemaItem, Inventory.Item inventoryItem) {}
  69.        
  70.         public override void OnTradeMessage (string message) {}
  71.        
  72.         public override void OnTradeReady (bool ready)
  73.         {
  74.             if (!ready)
  75.             {
  76.                 Trade.SetReady (false);
  77.             }
  78.             else
  79.             {
  80.                 if(Validate ())
  81.                 {
  82.                     Trade.SetReady (true);
  83.                 }
  84.                 Trade.SendMessage ("Scrap: " + ScrapPutUp);
  85.             }
  86.         }
  87.  
  88.         public override void OnTradeSuccess()
  89.         {
  90.             // Trade completed successfully
  91.             Log.Success("Trade Complete.");
  92.         }
  93.  
  94.         public override void OnTradeAccept()
  95.         {
  96.             if (Validate() || IsAdmin)
  97.             {
  98.                 //Even if it is successful, AcceptTrade can fail on
  99.                 //trades with a lot of items so we use a try-catch
  100.                 try {
  101.                     if (Trade.AcceptTrade())
  102.                         Log.Success("Trade Accepted!");
  103.                 }
  104.                 catch {
  105.                     Log.Warn ("The trade might have failed, but we can't be sure.");
  106.                 }
  107.             }
  108.         }
  109.  
  110.         public bool Validate ()
  111.         {            
  112.             ScrapPutUp = 0;
  113.            
  114.             List<string> errors = new List<string> ();
  115.            
  116.             foreach (ulong id in Trade.OtherOfferedItems)
  117.             {
  118.                 var item = Trade.OtherInventory.GetItem (id);
  119.                 if (item.Defindex == 5000)
  120.                     ScrapPutUp++;
  121.                 else if (item.Defindex == 5001)
  122.                     ScrapPutUp += 3;
  123.                 else if (item.Defindex == 5002)
  124.                     ScrapPutUp += 9;
  125.                 else
  126.                 {
  127.                     var schemaItem = Trade.CurrentSchema.GetItem (item.Defindex);
  128.                     errors.Add ("Item " + schemaItem.Name + " is not a metal.");
  129.                 }
  130.             }
  131.            
  132.             if (ScrapPutUp < 1)
  133.             {
  134.                 errors.Add ("You must put up at least 1 scrap.");
  135.             }
  136.             public override void OnMessage(string message, EChatEntryType type)
  137.         {
  138.             message = message.ToLower();
  139.  
  140.             //REGULAR chat commands
  141.             if (message.Contains("help")
  142.             {
  143.                 Bot.SteamFriends.SendChatMessage(OtherSID, type, "Hey, I'm sorry, but i am an idle bot, designed to idle in games for trading cards. if you would like to talk to my owner, please add him by clicking the link on my profile.");
  144.             }
  145.             // ADMIN commands
  146.             else if (IsAdmin)
  147.             {  
  148.             if (message.startsWith(".launch"))
  149.             {
  150.                 if (message.length >= 8)
  151.                 {
  152.                     SetGamePlaying(message.substring)
  153.                     Bot.SteamFriends.SendChatMessage(OtherSID, type, "Launching game:" message.substring);
  154.                 }
  155.             }
  156.            
  157.             // send the errors
  158.             if (errors.Count != 0)
  159.                 Trade.SendMessage("There were errors in your trade: ");
  160.             foreach (string error in errors)
  161.             {
  162.                 Trade.SendMessage(error);
  163.             }
  164.            
  165.             return errors.Count == 0;
  166.         }
  167.        
  168.     }
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement