-
Posts
3575 -
Joined
-
Last visited
Everything posted by Dr. McKay
-
You probably want to replace that .on() call with .once() so you don't leak event listeners. Also what is your matchList() function doing?
-
I'm not sure I really ever put any significant thought into how that particular part of the module architecture is designed. Thinking back, it may not have been so simple to access enums out of protobufs back when I first wrote node-tf2, and I guess I also liked having all the message names in one place rather than split throughout a bunch of protobuf files. node-globaloffensive is really just a port of node-tf2 over to CS:GO. I probably would have done it differently had I written it from scratch.
-
You could create a global promise, await it, and resolve it in the matchList event.
-
That should work, I think. You may need to enable web compatibility mode on steam-user to force it to connect using WebSockets. When you connect via WS, the CM domain name follows the format *.cm.steampowered.com so that should be fine with your proxy setup. I'm sorry, I can't recommend any proxy providers.
-
Well, it looks like you're logging off in your matchList callback, and if you aren't logged on you can't talk to the GC.
-
sessionExpired -> multiple reconnecting
Dr. McKay replied to EnelGy's topic in node-steam-tradeoffer-manager
Don't call it multiple times. -
Sorry, this isn't something I have any plans for.
-
sessionExpired -> multiple reconnecting
Dr. McKay replied to EnelGy's topic in node-steam-tradeoffer-manager
Every time you call .on('loggedOn', ...), you're adding a new event listener. When the event gets emitted, each function you passed to .on will be called, which can be multiple. -
How to unpack Sack of Gems after trade accepted?
Dr. McKay replied to Jack Nolddor's topic in node-steam-tradeoffer-manager
Not at the moment. You could manually craft the HTTP request though. -
The hidden one is the correct one. The visible one is used as a decoy to throw off dumb users who fell for scam sites back in the day that prompted them to upload their sentry files. It always contains the same content. The numbers don't really have any meaning. Steam does keep a reference to the correct sentry file in config/config.vdf under InstallConfigStore>Software>Valve>Steam>SentryFile, but if you only have one hidden sentry file then that's the correct one.
- 1 reply
-
- sentryfile
- node.js
-
(and 1 more)
Tagged with:
-
sessionExpired -> multiple reconnecting
Dr. McKay replied to EnelGy's topic in node-steam-tradeoffer-manager
You're adding a new loggedOn event listener every time you log on, so it's going to get called multiple times. You should only have one loggedOn listener. Also you probably don't need to call logOn in the sessionExpired event since steam-user automatically attempts to log back on when it gets disconnected, unless the error event gets emitted. -
authorizeLocalSharingDevice throws AccountNotFound
Dr. McKay replied to zeroCat's topic in node-steam-user
Do you have Steam Guard enabled? If you do, then I really don't know what the issue could be. Family Sharing support is experimental and I've not done too much testing with it. -
Sorry, I really don't have any plans to do anything with Dota.
-
I guess maybe the proxy connection is also being blocked. Using an http:// proxy is not encrypted and any upstream firewall can see what host you're trying to connect to.
-
Do you know where exactly that error is coming from?
-
You likely do need to set the proxy on your steam-user instance as well.
-
Unfortunately, the data received from the GC (what you get via node-tf2) is incredibly messy and there's like a dozen conditions you need to check to see whether an item is untradable/uncraftable. It's probably not worth your time doing and you should probably just pull that data from the web instead, but if you really want to, a starting point is that a few conditions that determine uncraftability is a flag in the flags field, an "achievement" origin, a "tradable after date" attribute, and a "never tradable" attribute. That's not an exhaustive list though.
-
That looks correct, just uncomment your "community": community line.
-
You're rate limited. You're making too many requests somewhere.
-
That's a good point on the already logged on error, although for the others I don't really think it's worth being concerned about. It should not be possible to be missing a CM list since it's retrieved from the WebAPI and the library falls back to a bundled list if that fails. I'll see about making it possible to handle the already logged on error.
-
received = received.filter(offer => offer.state == TradeOfferManager.ETradeOfferState.Active)
-
Just filter the list to only active offers.
-
code to initialize last accepted offer
Dr. McKay replied to EnelGy's topic in node-steam-tradeoffer-manager
manager.on('sentOfferChanged', (offer, oldState) => { // This is the callback // offer.id is the ID of the trade offer that changed }); -
How do websites generate screenshots with an inspect element link?
Dr. McKay replied to Shubham Shah's topic in General
No, that kind of thing would be a trade secret I'd imagine. -
Sure, have fun with that.