Jump to content
McKay Development

Search the Community

Showing results for tags 'bug'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News & Announcements
    • Releases & Updates
  • Help & Support
    • General
    • Guides
    • node-steam-user
    • node-steamcommunity
    • node-steam-tradeoffer-manager
    • node-steam-session

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Location


Interests

Found 6 results

  1. Describe the bug When attempting to log in to Steam using a proxy, Steam still sees my real IP address instead of routing traffic through the proxy. I have tried both HTTP‐over‐HTTP (httpProxy) and SOCKS5 (createConnection + SocksProxyAgent) approaches in two separate test files, but neither one works as expected. Versions - steam-user: v5.2.0 - steam-totp: v2.1.2 - socks-proxy-agent: v8.0.5 - Node.js: v22.14.0 - OS: Windows 11 Screenshots and Error Logs When running either test file, login succeeds but `client.publicIP` reports my real IP, not the proxy’s IP: No other errors are thrown. http.js const SteamUser = require("steam-user"); const SteamTotp = require("steam-totp"); // ––– your 2FA & creds ––– const sharedSecret = "ABCDEFGH1234IJKL="; const accountName = "myUserName"; const password = "MyP@ssw0rd!"; // just “user:pass@host:port” (percent‑encode any “=” or “@” in your password) const httpProxy = "user123:pa%40ssw0rd%[email protected]:8080"; const client = new SteamUser({ httpProxy, webCompatibilityMode: true, // you can force raw‑TCP if you like: // protocol: SteamUser.EConnectionProtocol.TCP }); client.logOn({ accountName, password, twoFactorCode: SteamTotp.generateAuthCode(sharedSecret), }); client.on("loggedOn", () => { console.log("✅ Logged in – Steam sees IP as", client.publicIP); }); client.on("error", (err) => { console.error("❌ Login error:", err); }); socks5h.js const SteamUser = require("steam-user"); const SteamTotp = require("steam-totp"); const { SocksProxyAgent } = require("socks-proxy-agent"); //––– your 2FA & creds ––– const sharedSecret = "ABCDEFGH12345678="; const accountName = "exampleUser"; const password = "Tr1ckyP@ss"; // your socks5h URL: const socksUri = "socks5h://fake-user:[email protected]:1080"; const agent = new SocksProxyAgent(socksUri); const client = new SteamUser({ // force raw‐TCP protocol: SteamUser.EConnectionProtocol.TCP, // whenever steam-user wants a socket, we hand it over to our proxy agent createConnection: (opts) => agent.createConnection(opts), autoRelogin: true, }); client.logOn({ accountName, password, twoFactorCode: SteamTotp.generateAuthCode(sharedSecret), }); client.on("loggedOn", () => { console.log("✅ Logged in – Steam sees IP as", client.publicIP); }); client.on("error", (err) => console.error("❌ Login error:", err));
  2. Hi, Starting from version 5.0.2, a bug appeared: when using unstable proxies, authorization stops working and nothing happened, could you add some handlers to reject them properly, for example, emit client error to catch them inside client.error handler ? Uncaught (in promise) Error: socket hang up at connResetException (node:internal/errors:704:14) at Socket.socketOnEnd (node:_http_client:505:23) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1358:12) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) node:_http_client:521 Uncaught (in promise) Error: Parse Error: Expected HTTP/ at Socket.socketOnData (node:_http_client:521:22) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23) When I revert to 5.0.1, errors are thrown in the client.on('error') handler
  3. The code below uses the information provided by the chatRoomGroupMemberStateChange event to send a message through a chat group channel welcoming a user to the group. async function groupListener() { await client.chat.setSessionActiveGroups(["XXXXXXXX"]); console.log("Group set as active."); client.chat.on("chatRoomGroupMemberStateChange", async (details) => { if (details.change === 1) { const personas = await client.getPersonas([details.member.steamid]); const accountid = details.member.steamid.accountid; const steamID64 = details.member.steamid.getSteamID64(); const playerName = personas.personas[steamID64].player_name; await new Promise((resolve) => setTimeout(resolve, 2000)); await groupComment(0, accountid, playerName, "Welcome to the group!"); } }); } ✔️ If the bot is online and a user joins, the message is sent. If the user then leaves the chat and rejoins it, the message is sent too. ❌ However, if a joined user exits the chat while the bot is offline and then rejoins while the bot is online, there is an error: Error: Request timed out at Promises.timeoutPromise (USERPATH\steambot\node_modules\@doctormckay\stdlib\components\promises.js:12:12) at Promises.timeoutCallbackPromise (USERPATH\steambot\node_modules\@doctormckay\stdlib\components\promises.js:87:25) at SteamUser.getPersonas (USERPATH\steambot\node_modules\steam-user\components\friends.js:323:26) at SteamChatRoomClient.<anonymous> (USERPATH\steambot\Trashbot\trashBot.js:555:41) at SteamChatRoomClient.emit (node:events:512:28) at SteamUser.<anonymous> (USERPATH\steambot\node_modules\steam-user\components\chatroom.js:1186:12) at USERPATH\steambot\node_modules\steam-user\components\classes\HandlerManager.js:35:12 at Array.forEach (<anonymous>) at HandlerManager.emit (USERPATH\steambot\node_modules\steam-user\components\classes\HandlerManager.js:34:12) at SteamUser._handleMessage (USERPATH\steambot\node_modules\steam-user\components\03-messages.js:641:25) at SteamUser._handleNetMessage (USERPATH\steambot\node_modules\steam-user\components\03-messages.js:562:8) at SteamUser._processMulti (USERPATH\steambot\node_modules\steam-user\components\03-messages.js:693:9) Further leaving and rejoining throw no errors. Why is this the case and how can I fix this anomalous behaviour?
  4. Upon accepting a trade offer, my bot's inventory is sorted by class (presumably: tf2.sortBackpack(0)). However, as you can see in the picture, it is only partially sorted, possibly because I am not "acknowledging" the new items and they do not behave normally. I can find no other explanation - I have tried everything. Please, help me.
  5. Recently (In the last few months) the function setPersona state partly broke. The persona still changes and updates if you set the persona to be Online, but setting it to Away, Busy or Snooze will not have any effect. the setPersona function is called using a value from `EPersonaState.js` (https://github.com/DoctorMcKay/node-steam-user/blob/master/enums/EPersonaState.js). When setting the persona to a value of 2, 3, 4, 7 or 8, steam will not update the persona. It is worth noting that persona state 5 and 6 (LookingToTrade/Play) still work perfectly fine. I have added a code snippet of how I set my persona state below. this._steam = new SteamUser({ dataDirectory: dataDir }); // Login to steam, and wait for the 'loggedOn' event. // The following is tried with a number of states defined in the EPersonaState.js this._steam.setPersona( SteamUser.EPersonaState["Busy"] ); I then used the official steam client to check the effective personaState, which was only updated if it was set to offline, LookingToTrade or LookingToPlay. Setting the persona to another value such as Away still worked a few months ago. Another notable effect is that node-steam-user still receives a correct persona update event if the persona is being set to invisible, but the persona is NOT updated in other steam clients. states such as Away and Busy don't receive any steam persona update event.
  6. Hey. I just noticed there is pretty important bug in the steamstore module. SteamStore.prototype.hasPhone = function(callback) { var self = this; this.request.get("https://store.steampowered.com/account/", function(err, response, body) { if(self._checkHttpError(err, response, callback)) { return; } var $ = Cheerio.load(body); var $phone = $('.phone_header_description .account_data_field'); var match; if($phone && (match = $phone.text().match(/Ends in (\d+)/))) { // Has phone number callback(null, true, match[1]); return; } // See if we have an add-number link if($('a[href*="/phone/add"]').length) { callback(null, false); return; } callback(new Error("Malformed response: " + body)); }); }; I modified it a bit so it returns body when malformed response happens. The bug is that it is not matching account with language set not to english. Example: <div class="phone_header_description"> Telefon: <img src="https://steamstore-a.akamaihd.net/public/images/mobile/icon_mobile.png" alt="" > <span class="account_data_field">Kończy się na 01</span> </div> steamstore fails and returns "Malformed response" easy fix: use /([0-9]{2})/ regex instead of this. I hope it will be patched soon. I've just submitted GitHub poll request. Thank you! ~expl0it
×
×
  • Create New...