KaMilml Posted July 28, 2017 Report Posted July 28, 2017 I am working in a steam trade bot just for send offers, not anymore. And have to use node-steamcommunity because I need necessarily the startConfirmationChecker metod.But I want to use just this module node-steam-user because the maker says this is a improve... the problem is exists the startConfirmationChecker metod in this module? Quote
Dr. McKay Posted July 28, 2017 Report Posted July 28, 2017 The different modules are good at different things. steam-user only handles communication with the Steam CM servers. Confirmations don't go through those servers, so you need steamcommunity for that. In my opinion, you should use steam-user, steamcommunity, and steam-tradeoffer-manager for the most robust system. Quote
KaMilml Posted July 29, 2017 Author Report Posted July 29, 2017 I still have another question about it. This is my code: const startBot = bot => { community[bot] = new SteamCommunity() tradeManager[bot] = new TradeOfferManager(config.tradeConfig) tradeManager[bot].community = community[bot] fs.readFile('polldata_'+bot+'.json', (err, data) => { err ? console.log('no habia polldata') : tradeManager[bot].pollData = JSON.parse(data) }) community[bot].login({ accountName: config[bot].accountName, password: config[bot].password, twoFactorCode : SteamTotp.getAuthCode(config[bot].sharedSecret) }, (err, sessionID, cookies) => { if (!!err) throw console.log('fallo el login:', err) tradeManager[bot].setCookies(cookies, err => { err ? process.exit() : console.log('cookies '+bot+':', tradeManager[bot].apiKey) }) community[bot].startConfirmationChecker(3600000, config[bot].identitySecret) }) community[bot].on('confKeyNeeded', (tag, callback) => callback(null, time, SteamTotp.getConfirmationKey(config[bot].identitySecret, Math.floor(Date.now() / 1000), tag))) community[bot].on('confirmationAccepted', confirmation => { io.to(offers[confirmation.offerID].socketID).emit('offerResponse', { code: 'confirmationAccepted', offerID: confirmation.offerID }) console.log('confirmationAccepted', confirmation)/*; socketResponse('confirmationAccepted', confirmation.offerID)*/ }) community[bot].on('newConfirmation', confirmation => { console.log('newConfirmation', confirmation) }) tradeManager[bot].on('sentOfferCanceled', (offer, reason) => socketResponse('sentOfferCanceled', offer.id)) tradeManager[bot].on('sentPendingOfferCanceled', offer => socketResponse('sentPendingOfferCanceled', offer.id)) tradeManager[bot].on('pollData', pollData => fs.writeFileSync('polldata_'+bot+'.json', JSON.stringify(pollData))) tradeManager[bot].on('pollFailure', err => console.log('error steam API', err)) tradeManager[bot].on('newOffer', offer => { offer.decline(); console.log('se nos envio una nueva oferta', offer.id) }) tradeManager[bot].on('unknownOfferSent', offer => { offer.decline(); console.log('se envio oferta sin el manager', offer.id) }) tradeManager[bot].on('realTimeTradeConfirmationRequired', offer => { offer.decline(); console.log('se envio oferta desde el cliente steam') }) tradeManager[bot].on('realTimeTradeCompleted', offer => console.log('se completo oferta desde el cliente steam')) tradeManager[bot].on('receivedOfferChanged', (offer, oldState) => console.log('receivedOfferChanged', offer.id, TradeOfferManager.ETradeOfferState[oldState], '=>', TradeOfferManager.ETradeOfferState[offer.state])) tradeManager[bot].on('sentOfferChanged', (offer, oldState) => { console.log(offer.state) if (offer.state == '3') socketResponse('Accepted', offer.id) if (offer.state == '11') socketResponse('InEscrow', offer.id) if (offer.state == '7') socketResponse('Declined', offer.id) if (offer.state == '4') socketResponse('Countered', offer.id) if (offer.state == '8') socketResponse('InvalidItems', offer.id) }) } Then my question is, if my app is just using node-steamcommunity and steam-tradeoffer-manager for what would I need node-steam-user?Or just doing this: tradeManager[bot] = new TradeOfferManager(config.tradeConfig) tradeManager[bot].steam = new SteamUser() tradeManager[bot].community = new SteamCommunity()My app will be better?I am sorry for many question, I just want to understand what exactly is necessary and why. Thank you =) Quote
Dr. McKay Posted July 29, 2017 Report Posted July 29, 2017 It's not strictly necessary. It's (in my opinion) the best way to login to Steam and get cookies (and as a benefit you can easily appear online and get real-time trade offer notifications), but it's not the only way. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.