-
Posts
3575 -
Joined
-
Last visited
Everything posted by Dr. McKay
-
No support for block/unblock multiple people from a single request?
Dr. McKay replied to Akaz's topic in node-steam-user
steam-user is specifically intended to implement the Steam client protocol. Anything that must be done via web should go in node-steamcommunity. -
is there anyway to get steamcommunity market histroy?
Dr. McKay replied to venfiw's topic in node-steamcommunity
Not at the moment. -
What is the error you're getting?
-
If you're trying to get your own friends list and you're already using steam-user for other things, then you might as well just use steam-user for that. Although your code can be simplified to: client.on('friendsList', function() { let friends = Object.keys(client.myFriends.filter(relationship => SteamUser.EFriendRelationship.Friend)); console.log('All Friends: ' + friends.length); }); Your code as written will also include people who you've sent a friend request to, people who've sent a request to you, and blocked users as friends. If you're not already using some other feature in steam-user, then it'd be easier to just use the WebAPI. And if you're trying to get someone else's friends list, you'll have to use the WebAPI.
-
I am having trouble getting SteamChatRoomClient to work
Dr. McKay replied to a topic in node-steam-user
The events have the same name, yes. -
There's a limit on logon attempts (failed or successful). I don't know exactly what the limit or cooldown is, but I think it's somewhere around 10 per hour.
- 1 reply
-
- rate limit
- login
-
(and 1 more)
Tagged with:
-
Apptickets need to be validated by all servers, secure or not. I highly doubt that you'd be able to subscribe to an arbitrary user's inventory.
-
If you know the ID of the trade offer you're trying to map new item IDs for, this is actually really easy. GetTradeOffer includes the trade_id of the completed trade, and GetTradeStatus includes the mapping of old to new asset IDs for all items. It even has the new asset IDs in the original user's inventory if the trade was rolled back (due to an error in the middle of committing, or canceled escrow).
-
I've never actually first-hand tried to figure out how servers are notified of items being acquired by users. That plugin just hooks the message that the server sends to its clients (which is what triggers the native chat message), suppresses it, extracts the data from it, and sends its own messages. It's an event called item_found, and it's generated by the server in response to some notification that an item was found. The following is my best guess as to how it works: When a TF2 client joins a game server, the server authenticates their Steam app ticket. Once that's done, the GC sends the full contents of the player's inventory to the server, which keeps it in a memory cache. This is necessary so the server can make sure you actually own the weapons and cosmetics you're equipping. As long as the player is connected, the GC informs the game server in real time of updates to the player's inventory (in the same way that the GC informs the player's game client of updates to its own inventory). When a player connected to it receives a new item, a game server receives an "item created" message (SO_Create), and then the game server extracts the item's data (using the origin field to determine the acquisition method), and then broadcasts item_found to all its clients. The biggest problem I have with that explanation is that I don't think the origin field changes to "Traded" when an item is traded for, so how would a game server determine if an item was traded for? Maybe the origin field in the GC's item data changes to Traded but the origin field in the API doesn't or something.
-
It's entirely possible that keys have the cannot-craft flag set. They're necessarily purchased from the store, after all. The web and in-game UIs might just hide that text for keys. It is actually possible to accurately get craftability and tradability from the GC data (after all, that's the same data the official game client gets and it has to be able to determine if items are tradable or craftable), but it's a complete mess and you need to check a handful of different conditions and attributes because it's Valve and Valve can't write good code. For example, there's an attribute "cannot trade" but then there's also an attribute "always tradable" and I have no idea which takes precedence. My wild guess would be that "always tradable" trumps the achievement origin but is itself trumped by the flag and other untradable attributes (e.g. "tradable after date") but this is likely a really deep rabbit hole to dive into and I've never been insane enough to try. What is it you're doing? How frequently do you need to retrieve item data?
-
Rating a status not detected by steam ?
Dr. McKay replied to SENPAY98K's topic in node-steamcommunity
I dunno, maybe there's some second request that gets sent when you rate up some content that actually triggers the badge activity. -
You should probably use httpRequestGet rather than httpRequestPost.
-
Is using webchat a badge task? I don't remember. If it is, I'm not entirely sure how they'd detect when you use webchat but you might be able to accomplish it by logging onto a CM through steam-user using a client logon token.
-
No, you have to use steam-user for that.
-
I dunno, that error sounds like it's coming from the Node.js runtime.
-
I'd need to see the stack trace to be able to tell you anything.
-
Getting SteamID64 For The LoggedIn Account (steamcommunity)?
Dr. McKay replied to SENPAY98K's topic in node-steamcommunity
I'm not really sure what you're asking, but CSteamUser stuff does work. -
Getting SteamID64 For The LoggedIn Account (steamcommunity)?
Dr. McKay replied to SENPAY98K's topic in node-steamcommunity
Use community.steamID.getSteamID64(); no need to call getSteamUser to get your SteamID. Logging into a different account with the same SteamCommunity instance that was previously logged in isn't really supported. You should create a new SteamCommunity each time. -
https://github.com/DoctorMcKay/node-steam-user/issues/384
-
You're not actually logged on until the loggedOn event fires.
-
requestRichPresence and getPersonas rich_presence not working?
Dr. McKay replied to TSecret's topic in node-steam-user
It looks like Steam doesn't want to send rich presence data when you use getPersonas, so requestRichPresence is the proper way to request that data. Your lack of a callback was a bug which is fixed in v4.20.2. -
This should make the displayed game "Idling Hours", but sometimes Steam can be temperamental when it comes to custom game names. bot.gamesPlayed(['Idling Hours', ...this.games])
-
newOffer shouldn't take longer than 30 seconds. It should be pretty much instant if you passed a SteamUser instance to TradeOfferManager. You might try outputting TradeOfferManager's debug output to see if anything is amiss: _manager.on('debug', (msg) => { console.log(`[TradeOfferManager Debug] ${msg}`); });
-
The arguments are still domain, callback, lastCodeWrong on 3.29.3 as well.