Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using SteamKit2;
- using System.Collections.Generic;
- using SteamTrade;
- namespace SteamBot
- {
- public class IdleUserHandler : UserHandler
- {
- public int ScrapPutUp;
- public IdleUserHandler (Bot bot, SteamID sid) : base(bot, sid) {}
- public override bool OnGroupAdd()
- {
- return false;
- }
- public override bool OnFriendAdd ()
- {
- return false;
- }
- public override void OnLoginCompleted()
- {
- }
- public override void OnChatRoomMessage(SteamID chatID, SteamID sender, string message)
- {
- Log.Info(Bot.SteamFriends.GetFriendPersonaName(sender) + ": " + message);
- base.OnChatRoomMessage(chatID, sender, message);
- }
- public override void OnFriendRemove () {}
- public override void OnMessage (string message, EChatEntryType type)
- {
- Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.ChatResponse);
- }
- public override bool OnTradeRequest()
- {
- return true;
- }
- public override void OnTradeError (string error)
- {
- Bot.SteamFriends.SendChatMessage (OtherSID,
- EChatEntryType.ChatMsg,
- "Oh, there was an error: " + error + "."
- );
- Bot.log.Warn (error);
- }
- public override void OnTradeTimeout ()
- {
- Bot.SteamFriends.SendChatMessage (OtherSID, EChatEntryType.ChatMsg,
- "Sorry, but you were AFK and the trade was canceled.");
- Bot.log.Info ("User was kicked because he was AFK.");
- }
- public override void OnTradeInit()
- {
- Trade.SendMessage ("Success. Please put up your items.");
- }
- public override void OnTradeAddItem (Schema.Item schemaItem, Inventory.Item inventoryItem) {}
- public override void OnTradeRemoveItem (Schema.Item schemaItem, Inventory.Item inventoryItem) {}
- public override void OnTradeMessage (string message) {}
- public override void OnTradeReady (bool ready)
- {
- if (!ready)
- {
- Trade.SetReady (false);
- }
- else
- {
- if(Validate ())
- {
- Trade.SetReady (true);
- }
- Trade.SendMessage ("Scrap: " + ScrapPutUp);
- }
- }
- public override void OnTradeSuccess()
- {
- // Trade completed successfully
- Log.Success("Trade Complete.");
- }
- public override void OnTradeAccept()
- {
- if (Validate() || IsAdmin)
- {
- //Even if it is successful, AcceptTrade can fail on
- //trades with a lot of items so we use a try-catch
- try {
- if (Trade.AcceptTrade())
- Log.Success("Trade Accepted!");
- }
- catch {
- Log.Warn ("The trade might have failed, but we can't be sure.");
- }
- }
- }
- public bool Validate ()
- {
- ScrapPutUp = 0;
- List<string> errors = new List<string> ();
- foreach (ulong id in Trade.OtherOfferedItems)
- {
- var item = Trade.OtherInventory.GetItem (id);
- if (item.Defindex == 5000)
- ScrapPutUp++;
- else if (item.Defindex == 5001)
- ScrapPutUp += 3;
- else if (item.Defindex == 5002)
- ScrapPutUp += 9;
- else
- {
- var schemaItem = Trade.CurrentSchema.GetItem (item.Defindex);
- errors.Add ("Item " + schemaItem.Name + " is not a metal.");
- }
- }
- if (ScrapPutUp < 1)
- {
- errors.Add ("You must put up at least 1 scrap.");
- }
- public override void OnMessage(string message, EChatEntryType type)
- {
- message = message.ToLower();
- //REGULAR chat commands
- if (message.Contains("help")
- {
- 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.");
- }
- // ADMIN commands
- else if (IsAdmin)
- {
- if (message.startsWith(".launch"))
- {
- if (message.length >= 8)
- {
- SetGamePlaying(message.substring)
- Bot.SteamFriends.SendChatMessage(OtherSID, type, "Launching game:" message.substring);
- }
- }
- // send the errors
- if (errors.Count != 0)
- Trade.SendMessage("There were errors in your trade: ");
- foreach (string error in errors)
- {
- Trade.SendMessage(error);
- }
- return errors.Count == 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement