Exemplo n.º 1
0
        public Bot(Configuration.BotInfo config, string apiKey, UserHandlerCreator handlerCreator, bool debug = false, bool process = false)
        {
            logOnDetails = new SteamUser.LogOnDetails
            {
                Username = config.Username,
                Password = config.Password
            };
            DisplayName          = config.DisplayName;
            MaximumTradeTime     = config.MaximumTradeTime;
            MaximiumActionGap    = config.MaximumActionGap;
            DisplayNamePrefix    = config.DisplayNamePrefix;
            TradePollingInterval = config.TradePollingInterval <= 100 ? 800 : config.TradePollingInterval;
            Admins           = config.Admins;
            BackpackUrl      = config.Backpack;
            sNumberTradeFile = config.TradeNumberSaveFile;
            this.apiKey      = apiKey;
            this.isprocess   = process;
            try
            {
                LogLevel = (Log.LogLevel)Enum.Parse(typeof(Log.LogLevel), config.LogLevel, true);
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Invalid LogLevel provided in configuration. Defaulting to 'INFO'");
                LogLevel = Log.LogLevel.Info;
            }
            log             = new Log(config.LogFile, this.DisplayName, LogLevel);
            CreateHandler   = handlerCreator;
            BotControlClass = config.BotControlClass;

            // Hacking around https
            ServicePointManager.ServerCertificateValidationCallback += SteamWeb.ValidateRemoteCertificate;
            dReserved = new Dictionary <ulong, SteamID>();
            dDonated  = new Dictionary <ulong, SteamID>();
            log.Debug("Initializing Steam Bot...");
            SteamClient          = new SteamClient();
            SteamTrade           = SteamClient.GetHandler <SteamTrading>();
            SteamUser            = SteamClient.GetHandler <SteamUser>();
            SteamFriends         = SteamClient.GetHandler <SteamFriends>();
            SteamGameCoordinator = SteamClient.GetHandler <SteamGameCoordinator>();
            craftHandler         = new CraftingHandler(this);
            informHandler        = new InformHandler(this, BotControlClass.Substring(9));
            AdvertiseHandler     = new AdvertiseHandler(this, BotControlClass.Substring(9), clsFunctions.BotGroup);
            backgroundWorker     = new BackgroundWorker {
                WorkerSupportsCancellation = true
            };

            if (!Directory.Exists(FriendsFolder))
            {
                Directory.CreateDirectory(FriendsFolder);
            }


            this.FriendActivity                  = FriendActivity.LoadFriendActivity(FriendsFolder + logOnDetails.Username + ".json");
            backgroundWorker.DoWork             += BackgroundWorkerOnDoWork;
            backgroundWorker.RunWorkerCompleted += BackgroundWorkerOnRunWorkerCompleted;
            backgroundWorker.RunWorkerAsync();
        }
        public static FriendActivity LoadFriendActivity(string filename)
        {
            string         json;
            FriendActivity friendactiv = new FriendActivity();

            if (File.Exists(filename))
            {
                TextReader reader = new StreamReader(filename);
                json = reader.ReadToEnd();
                reader.Close();
                friendactiv = JsonConvert.DeserializeObject <FriendActivity>(json);
            }
            else
            {
                friendactiv = new FriendActivity();
                friendactiv.FriendActivityInfo = new Dictionary <string, DateTime>();
                friendactiv.FriendActivityInfo.Add(clsFunctions.BotsOwnerID.ConvertToUInt64().ToString(), DateTime.Now);
            }

            return(friendactiv);
        }
        public static void UpdateFriendActivity(string filename, FriendActivity friendactivity)
        {
            string json = JsonConvert.SerializeObject(friendactivity);

            File.WriteAllText(filename, json);
        }