Advertisement
Guest User

Untitled

a guest
Oct 12th, 2018
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using SteamKit2;
  7. using System.IO;
  8. using System.Threading;
  9. using OpenWeatherMap;
  10. using System.Net;
  11. using System.Xml;
  12.  
  13.  
  14. namespace steamBot
  15. {
  16.     class Program
  17.     {
  18.         static string user, pass;
  19.         static string authCode;
  20.  
  21.         static SteamClient steamClient;
  22.         static CallbackManager manager;
  23.         static SteamUser steamUser;
  24.         static SteamFriends steamFriends;
  25.  
  26.         static bool isRunning = false;
  27.  
  28.        
  29.         static void Main(string[] args)
  30.         {
  31.             if (!File.Exists("chat.txt"))
  32.             {
  33.                 File.Create("chat.txt").Close();
  34.                 File.WriteAllText("chat.txt", "abc | 123");
  35.             }
  36.             Console.Title = "Steam Bot";
  37.  
  38.             Console.Write("Username: ");
  39.             user = Console.ReadLine();
  40.  
  41.             Console.Write("Password: ");
  42.             pass = Console.ReadLine();
  43.  
  44.             SteamLogIn();
  45.         }
  46.  
  47.         static void SteamLogIn()
  48.         {
  49.             steamClient = new SteamClient();
  50.             manager = new CallbackManager(steamClient);
  51.             steamUser = steamClient.GetHandler<SteamUser>();
  52.             steamFriends = steamClient.GetHandler<SteamFriends>();
  53.             manager.Subscribe<SteamClient.ConnectedCallback>(OnConnected);
  54.             manager.Subscribe<SteamClient.DisconnectedCallback>(OnDisconnected);
  55.             manager.Subscribe<SteamUser.LoggedOnCallback>(OnLoggedOn);
  56.             manager.Subscribe<SteamUser.UpdateMachineAuthCallback>(UpdateAuthMachineCallback);
  57.             manager.Subscribe<SteamUser.AccountInfoCallback>(OnAccountInfo);
  58.             manager.Subscribe<SteamFriends.FriendMsgCallback>(OnChatMessage);
  59.             manager.Subscribe<SteamFriends.FriendsListCallback>(OnFriendsList);
  60.  
  61.  
  62.             isRunning = true;
  63.  
  64.             Console.WriteLine("\nConnecting to Steam..\n");
  65.  
  66.             steamClient.Connect();
  67.  
  68.             while (isRunning)
  69.             {
  70.                 manager.RunWaitCallbacks(TimeSpan.FromSeconds(1));
  71.             }
  72.            
  73.         }
  74.  
  75.         static void OnConnected(SteamClient.ConnectedCallback callback)
  76.         {
  77.             Console.WriteLine("Connected to steam server \nLogging in user: {0}", user);
  78.             byte[] sentryHash = null;
  79.             if (File.Exists("sentry.bin"))
  80.             {
  81.                 byte[] sentryfile = File.ReadAllBytes("sentry.bin");
  82.  
  83.                 sentryHash = CryptoHelper.SHAHash(sentryfile);
  84.  
  85.  
  86.             }
  87.             steamUser.LogOn(new SteamUser.LogOnDetails
  88.             {
  89.                 Username = user,
  90.                 Password = pass,
  91.  
  92.                 AuthCode = authCode,
  93.  
  94.                 SentryFileHash = sentryHash
  95.  
  96.             });
  97.         }
  98.  
  99.         static void OnLoggedOn(SteamUser.LoggedOnCallback callback)
  100.         {
  101.             if (callback.Result == EResult.AccountLogonDenied)
  102.             {
  103.                 Console.WriteLine("This account is Steam Guard protected");
  104.                 Console.WriteLine("Please enter the code sent to your email at {0}: ", callback.EmailDomain);
  105.                 authCode = Console.ReadLine();
  106.                 return;
  107.             }
  108.             if (callback.Result != EResult.OK)
  109.             {
  110.                 Console.WriteLine("Unable to log in to Steam: {0}\n", callback.Result);
  111.                 isRunning = false;
  112.                 return;
  113.             }
  114.             Console.Clear();
  115.             Console.WriteLine("Sucessfully logged in as : {0}", user);
  116.         }
  117.  
  118.         static void UpdateAuthMachineCallback(SteamUser.UpdateMachineAuthCallback callback)
  119.         {
  120.             Console.WriteLine("Updating sentry file..");
  121.  
  122.             byte[] sentryHash = CryptoHelper.SHAHash(callback.Data);
  123.  
  124.             File.WriteAllBytes("sentry.bin", callback.Data);
  125.  
  126.             steamUser.SendMachineAuthResponse(new SteamUser.MachineAuthDetails
  127.             {
  128.                 JobID = callback.JobID,
  129.                 FileName = callback.FileName,
  130.                 BytesWritten = callback.BytesToWrite,
  131.                 FileSize = callback.Data.Length,
  132.                 Offset = callback.Offset,
  133.                 Result = EResult.OK,
  134.                 LastError = 0,
  135.                 OneTimePassword = callback.OneTimePassword,
  136.                 SentryFileHash = sentryHash,
  137.             });
  138.             Console.WriteLine("Done!");
  139.         }
  140.  
  141.         static void OnDisconnected(SteamClient.DisconnectedCallback callback)
  142.         {
  143.             Console.WriteLine("\n {0} Disconnected from steam servers , reconnecting in 5...\n", user);
  144.             Thread.Sleep(5000);
  145.             steamClient.Connect();
  146.             Console.Clear();
  147.         }
  148.  
  149.         static void OnAccountInfo(SteamUser.AccountInfoCallback callback)
  150.         {
  151.             steamFriends.SetPersonaState(EPersonaState.Online);
  152.         }
  153.  
  154.         static void OnFriendsList(SteamFriends.FriendsListCallback callback)
  155.         {
  156.             Thread.Sleep(2500);
  157.            
  158.             foreach(var friend in callback.FriendList)
  159.             {
  160.                 if (friend.Relationship == EFriendRelationship.RequestRecipient)
  161.                 {
  162.                     Console.WriteLine("FriendRequests: " + steamFriends.GetFriendPersonaName(friend.SteamID) + " sent a friend request. Accepting..");
  163.                     steamFriends.AddFriend(friend.SteamID);
  164.                     Thread.Sleep(500);
  165.                     steamFriends.SendChatMessage(friend.SteamID, EChatEntryType.ChatMsg, "Hello I am a bot, for help type !commands");
  166.                 }
  167.             }
  168.         }
  169.  
  170.         static void OnChatMessage(SteamFriends.FriendMsgCallback callback)
  171.         {
  172.             string[] args;
  173.             if (callback.EntryType == EChatEntryType.ChatMsg)
  174.             {
  175.                 if (callback.Message.Length > 1)
  176.                 {
  177.                     if(callback.Message.Remove(1) == "!")
  178.                     {
  179.                         string command = callback.Message;
  180.                         if (callback.Message.Contains(" "))
  181.                         {
  182.                             command = callback.Message.Remove(callback.Message.IndexOf(' '));
  183.                         }
  184.  
  185.                         switch(command)
  186.                         {
  187.                             #region send
  188.                             case "!send":
  189.                                 args = separate(2, ' ', callback.Message);
  190.                                 Console.WriteLine("!send " + args[1] + args[2] + " command recieved. User: " + steamFriends.GetFriendPersonaName(callback.Sender));
  191.                                 if (args[0] == "-1")
  192.                                 {
  193.                                     steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "Syntax: !send [friend] [message]");
  194.                                     return;
  195.                                 }
  196.                                 for (int i = 0; i < steamFriends.GetFriendCount(); i++)
  197.                                 {
  198.                                     SteamID friend = steamFriends.GetFriendByIndex(i);
  199.                                     if (steamFriends.GetFriendPersonaName(friend).ToLower().Contains(args[1].ToLower()))
  200.                                     {
  201.                                         steamFriends.SendChatMessage(friend, EChatEntryType.ChatMsg, args[2]);
  202.                                     }
  203.                                 }
  204.                                 break;
  205.                             #endregion
  206.                             #region friends
  207.                             case "!friends":
  208.                                 Console.WriteLine("!friends command recieved. User: " + steamFriends.GetFriendPersonaName(callback.Sender));
  209.                                 for(int i = 0; i < steamFriends.GetFriendCount(); i++)
  210.                                 {
  211.                                     SteamID friend = steamFriends.GetFriendByIndex(i);
  212.                                     steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "Friend: " + steamFriends.GetFriendPersonaName(friend) + " - State: " + steamFriends.GetFriendPersonaState(friend));
  213.                                 }
  214.                                 break;
  215.                             #endregion
  216.                             #region commands
  217.                             case "!commands":
  218.                                 Console.WriteLine("!commands command recieved. User: " + steamFriends.GetFriendPersonaName(callback.Sender));
  219.                                 steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "Available commands: !send; !friends");
  220.                                 break;
  221.                             #endregion
  222.                         }
  223.                     }
  224.                 }  
  225.                 string rLine;
  226.                 string trimmed = callback.Message;
  227.                 char[] trim = { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[', ']', '{', '}', '\\', '|', ';', ':', '"', '\'', ',', '<', '.', '>', '/', '?' };
  228.  
  229.                 for (int i = 0; i < 30; i++)
  230.                 {
  231.                     trimmed = trimmed.Replace(trim[i].ToString(), "");  
  232.                 }
  233.                  StreamReader sReader = new StreamReader("chat.txt");
  234.  
  235.             while ((rLine = sReader.ReadLine()) != null)
  236.             {
  237.                     string text = rLine.Remove(rLine.IndexOf('|') - 1);
  238.                     string response = rLine.Remove(0, rLine.IndexOf('|') + 2);
  239.  
  240.                     if (callback.Message.ToLower().Contains(text))
  241.                     {
  242.                         Console.WriteLine("Message: " + steamFriends.GetFriendPersonaName(callback.Sender) + ": " + callback.Message);
  243.                         steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, response);
  244.                         sReader.Close();
  245.                         return;
  246.                     }
  247.             }
  248.  
  249.         }
  250.         }
  251.  
  252.         public static string[] separate(int number,char separator, string thestring)
  253. #pragma warning restore IDE1006 // Naming Styles
  254.         {
  255.             string[] returned = new string[4];
  256.  
  257.             int i = 0;
  258.  
  259.             int error = 0;
  260.  
  261.             int lenght = thestring.Length;
  262.  
  263.             foreach(char c in thestring)
  264.             {
  265.                 if (i != number)
  266.                 {
  267.                     if (error > lenght || number > 5)
  268.                     {
  269.                         returned[0] = "-1";
  270.                         return returned;
  271.                     }
  272.                     else if (c == separator)
  273.                     {
  274.                         returned[i] = thestring.Remove(thestring.IndexOf(c));
  275.                         thestring = thestring.Remove(0, thestring.IndexOf(c) + 1);
  276.                         i++;
  277.                     }
  278.                     error++;
  279.  
  280.                     if (error == lenght && i != number)
  281.                     {
  282.                         returned[0] = "-1";
  283.                         return returned;
  284.                     }
  285.                 }
  286.                 else
  287.                 {
  288.                     returned[i] = thestring;
  289.                 }
  290.             }
  291.             return returned;
  292.         }
  293.     }
  294. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement