Jump to content
McKay Development

Dr. McKay

Administrator
  • Posts

    3626
  • Joined

  • Last visited

Everything posted by Dr. McKay

  1. Yeah, that does seem like the identity secret is wrong. It's possible that it's being corrupted when fed into your env var, since secrets can contain special characters that might break in terminal input.
  2. You could certainly use it to do that, yes.
  3. Make sure your clock is right.
  4. That's not presently a supported feature, but 1.4.0 was just published which adds the ability for you to pass in a custom https.Agent, which would allow you to bind to a particular local address.
  5. No reason I'd expect it not to work. It's the same game.
  6. I've never seen Revoked come through the error event, it should be LogonSessionReplaced for this issue. That said, logonID might not be working for you because it's supposed to be an integer, but Math.random() * 100000000 will instead return a float. You should round it with Math.floor().
  7. steam-user 4.29.0 is what fixed your problem. Prior to that version, steam-user used the old sentryfile system, which Steam doesn't use anymore.
  8. Are you on 5.0.1? There was a bug in 5.0.0 that prevented those files from being read properly.
  9. Cannot reproduce. I set up my inventory with 333 untradable gems and 1,097 tradable gems, then tried to create a 1,200 gem booster pack and I got the expected error 78 ValueOutOfRange.
  10. https://github.com/DoctorMcKay/node-steam-user#machine-auth-tokens steam-user will automatically handle saving and using your machine auth token, but if you're running in an environment where persistent storage isn't possible, you can use the machineAuthToken event to save a token somewhere yourself, and then use it again by passing machineAuthToken to logOn().
  11. Looks like you're calling getPersonas before you're logged on.
  12. Yes, those cookies can be used on steamcommunity.com. Are you using them on a different IP than where you generated them? That can cause issues. Otherwise, I don't know why it wouldn't be working based on your description.
  13. You likely have some TLS interception in your network.
  14. offer.addTheirItem(loserPlayer?.invertoryItem[0].asset); This looks an awful lot like you're trying to create an offer to move items between two different users, neither of which is your bot. That's not possible. If your bot has indeed collected the loserPlayer's item, then this should probably be offer.addMyItem, since it's presently in your bot's inventory.
  15. If you have the 64-bit trade ID, you can use the GetTradeStatus WebAPI method.
  16. Use the getExchangeDetails TradeOffer method to get the new asset ids of the items you received. Exact numbers are not known.
  17. There was a Steam update that broke things in steam-user this week, which could have caused a rate limit error. Make sure everything is up to date and you should be fine.
  18. The versions you pasted have the fixes that were just published. What's the exact error you're encountering?
  19. Steam will rate limit your logins, even if you don't have any failed logins. In my experience, 10 logins at the same time should work, although if you need to restart your script too quickly you may run into the rate limit. It's possible to run multiple SteamUser instances in one script, or to use separate scripts. It's up to you how to architect your app.
  20. You may be able to use a token generated by steam-session for that access_token.
  21. Not that I'm aware of.
  22. net.js is part of Node.js itself, so you wouldn't really be able to modify it.
  23. It is async. You can't use return inside a callback function and expect the outer function to get the value. To accomplish what you want, you could wrap it in a promise: export const sendBuyOffer = async (manager:TradeOfferManager, withdraw:any) => { const keys = getKeyBalance(manager); console.log('getKeyBalance returns', keys) if (Number(keys) <= withdraw.keys) { // Note the addition of `await` await createTradeOffer(manager, withdraw) // At this point, `resolve()` will have been called in the createTradeOffer function // Or, if sending the offer failed, an Error would have been thrown, which could be caught using try/catch } } const createTradeOffer = (manager:TradeOfferManager, withdraw:any) => { return new Promise((resolve, reject) => { const offer = manager.createOffer(withdraw.steamid) manager.getInventoryContents(TF2_APPID, INV_CONTEXT_ID, true, (err, inv) => { if (err) { return reject(err); } let keys = 0 for (let i = 0; i != inv.length; i++) { let item = inv[i] if (String(item.classid) == '101785959') { offer.addMyItem(item); keys++; } if (keys == withdraw.keys) break } offer.send((err, status) => { if (err) { console.log(err); reject(err); } else { console.log(`Sent offer. Status: ${status}.`); resolve(); } }); }); }); }
  24. The docs are actually really terrible on this and don't properly explain what this does. It doesn't bypass the need to confirm adding the phone number. When you add a number on the Steam UI, sometimes it throws up a warning message but allows you to proceed. I can't think of a case where this happens off-hand, but you used to be able to use VOIP numbers, though you would be warned that using a VOIP number is less secure than a true cell number, but you could click OK and continue. bypassConfirmation is what controls whether these errors come through to your Node app (false = fail with those errors, true = ignore them).
  25. I don't believe guides use that interface.
×
×
  • Create New...