Jump to content
McKay Development

Galorch

Member
  • Posts

    7
  • Joined

  • Last visited

Posts posted by Galorch

  1. So I'm quite new to this stuff and I'd like to get some help.

    I want to make a bot that accepts only certain trade offers, for ex, user put a KB-808 in the trade offer and took 3 scrap(/1 rec) and I want that to be accepted, what I have right now accepts everything, here's the bot:

     

    -----------------------------------------

    var Steam = require ('steam');
    var SteamUser = require('steam-user');
     
    var client = new SteamUser();
     
    var SteamTotp = require('steam-totp');
     
    var fs = require("fs");
     
    var SteamCommunity = require('steamcommunity');
    var community = new SteamCommunity(steamClient);
    var steamClient = new Steam.SteamClient();
    var SteamUser = new Steam.SteamUser(steamClient);
    var SteamFriends = new Steam.SteamFriends(steamClient);
    var crypto = require('crypto');
     
    var SteamTradeOffers = require('steam-tradeoffers');
    var offers = new SteamTradeOffers();
     
    var config;
    try {
      config = JSON.parse(fs.readFileSync('./config.json'));
    } catch (err) {
      console.log("Error: Unable to parse config.json");
      console.log(err);
      process.exit(1);
    }
     
    client.logOn({
      "accountName": config.username,
      "password": config.password
    });
     
    var TradeOfferManager = require('steam-tradeoffer-manager');
    var manager = new TradeOfferManager({
      "community": community,
      "language": "en",
      "pollInterval": 1000
    });
     
    client.on("webSession", function(steamID, cookies){
      manager.setCookies(cookies);
      community.setCookies(cookies);
      SteamTotp.steamID = steamID;
      community.startConfirmationChecker(2500, config.identitySecret)
    });
     
    manager.on('newOffer', function(offer) {
      console.log("New offer #" + offer.id + " from " + offer.partner.getSteam3RenderedID());
      offer.accept(function(err) {
        if (err) {
          console.log("Unable to accept offer: " + err.message);
        } else {
          community.checkConfirmations(); // Check for confirmations right after accepting the offer
          console.log("Offer accepted");
        }
      });
    });
     
    manager.on('receivedOfferChanged', function(offer, oldState) {
      console.log("Offer #" + offer.id + " changed: " + TradeOfferManager.getStateName(oldState) + " -> " + TradeOfferManager.getStateName(offer.state));
     
    if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) {
      offer.getReceivedItems(function(err, items) {
        if (err) {
          console.log("Couldn't get received items: " + err);
        } else {
          var names = items.map(function(item) {
            return item.name;
          });
     
          console.log("Received: " + names.join(', '));
         }
       });
      }
    });
     
    client.on("loggedOn", function(details)
    {
      client.setPersona(Steam.EPersonaState.Online)
      client.gamesPlayed(440)
     
      console.log("Successfully logged onto Steam, APIKey: " + config.apikey)
    });
     
    client.on("steamGuard", function(domain, callback, lastCodeWrong)
    {
      if(lastCodeWrong)
      {
         console.log("Last code wrong, retrying");
      }
     
      var shared_secret = config.sharedsecret;
     
      callback(SteamTotp.generateAuthCode(shared_secret));
    });
     
    community.on("newConfirmation", function(conf)
    {
        conf.respond(Math.floor(Date.now() / 1000), SteamTotp.getConfirmationKey(config.identitysecret,Math.floor(Date.now() / 1000), "allow"), true, function(err){
          if(err)
          {
            console.log("Confirmation failed: " + err);
            return;
          }
            console.log("Sucessfully confirmed!");
     
        });
    });
     
    community.on("confKeyNeeded", function(tag, callback){
      var time = Math.floor(Date.now() / 1000);
      callback(null, time, SteamTotp.getConfirmationKey(config.identitysecret, time, tag));
    });
    
×
×
  • Create New...