steamutils 1.3.33 → 1.3.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. package/SteamClient.js +70 -10
  2. package/index.js +13 -4
  3. package/package.json +2 -1
package/SteamClient.js CHANGED
@@ -132,6 +132,7 @@ function SteamClient({
132
132
  gifts: [],
133
133
  playingState: [],
134
134
  emailInfo: [],
135
+ accountLimitations: [],
135
136
  }
136
137
 
137
138
  const gcCallback = {}
@@ -294,6 +295,10 @@ function SteamClient({
294
295
  return [steamClient?.accountInfo?.name, steamClient?._logOnDetails?.account_name].filter(Boolean).join(" - ")
295
296
  }
296
297
 
298
+ function getPersonaName() {
299
+ return steamClient?.accountInfo?.name
300
+ }
301
+
297
302
  function log(...msg) {
298
303
  const now = moment().tz('Asia/Ho_Chi_Minh').format("DD/MM/YYYY HH:mm:ss")
299
304
  console.log(`[${now}] [${getAccountInfoName()}]`, ...msg)
@@ -571,6 +576,39 @@ function SteamClient({
571
576
  }
572
577
 
573
578
 
579
+ async function getLobbyData(lobbyID) {
580
+ if (!steamClient.steamID) {
581
+ return
582
+ }
583
+
584
+ return new Promise(resolve => {
585
+ const timeout = setTimeout(function () {
586
+ resolve()
587
+ }, 30000)
588
+
589
+ steamClient._send(
590
+ {
591
+ msg: Protos.csgo.EMsg.k_EMsgClientMMSGetLobbyData,
592
+ proto: {
593
+ steamid: steamClient.steamID.getSteamID64(),
594
+ routing_appid: 730
595
+ }
596
+ },
597
+ protoEncode(Protos.csgo.CMsgClientMMSGetLobbyData, {
598
+ app_id: 730,
599
+ steam_id_lobby: lobbyID.toString(),
600
+ }),
601
+ function (payload) {
602
+ clearTimeout(timeout)
603
+ const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer())
604
+ result.steam_id_lobby = result.steam_id_lobby.toString()
605
+ resolve(result)
606
+ }
607
+ );
608
+ })
609
+ }
610
+
611
+
574
612
  async function joinLobby(lobbyID) {
575
613
  log("joinLobby", lobbyID);//SteamID.fromIndividualAccountID(lobbyId).accountid
576
614
  steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSJoinLobby, {}, protoEncode(Protos.csgo.CMsgClientMMSJoinLobby, {
@@ -737,6 +775,7 @@ function SteamClient({
737
775
  switch (cache_object.type_id) {
738
776
  case 1: {
739
777
  const result = protoDecode(Protos.csgo.CSOEconItem, object_data);
778
+ result.id = result.id.toNumber()
740
779
  break
741
780
  }
742
781
  case 2: {
@@ -774,9 +813,7 @@ function SteamClient({
774
813
  prime = true
775
814
  CSOEconGameAccountClient.prime = true
776
815
  }
777
- if (CSOEconGameAccountClient) {
778
- obj.GameAccountClient = CSOEconGameAccountClient
779
- }
816
+ obj.GameAccountClient = CSOEconGameAccountClient
780
817
  break
781
818
  }
782
819
 
@@ -827,6 +864,15 @@ function SteamClient({
827
864
  const result = protoDecode(Protos.csgo.CSOQuestProgress, object_data);
828
865
  break
829
866
  }
867
+ case 4: {
868
+ const result = protoDecode(Protos.csgo.CSOAccountItemPersonalStore, object_data);
869
+ result.generation_time = result.generation_time * 1000
870
+ if (Array.isArray(result.items)) {
871
+ result.items = result.items.map(item => item.toNumber())
872
+ }
873
+ obj.personalStore = result
874
+ break
875
+ }
830
876
 
831
877
  default: {
832
878
  log("cache_object.type_id", cache_object.type_id);
@@ -923,7 +969,7 @@ function SteamClient({
923
969
  player_cur_xp: 327684501,
924
970
  player_xp_bonus_flags: 0
925
971
  }
926
- if (result?.global_stats?.required_appid_version && result.global_stats.required_appid_version > CSGO_VER) {
972
+ if (result?.global_stats?.required_appid_version && (!CSGO_VER || result.global_stats.required_appid_version > CSGO_VER)) {
927
973
  CSGO_VER = result.global_stats.required_appid_version
928
974
  }
929
975
  callEvent(events.csgoClientHello, result)
@@ -1313,10 +1359,22 @@ function SteamClient({
1313
1359
  callEvent(events.emailInfo, {address, validated})
1314
1360
  },
1315
1361
  async appLaunched() {
1316
- state = getPlayingAppIds().length ? 'InGame' : (isInvisible ? "Invisible" : 'Online')
1362
+ setTimeout(function () {
1363
+ state = getPlayingAppIds().length ? 'InGame' : (isInvisible ? "Invisible" : 'Online')
1364
+ }, 1000)
1317
1365
  },
1318
1366
  async appQuit() {
1319
- state = getPlayingAppIds().length ? 'InGame' : (isInvisible ? "Invisible" : 'Online')
1367
+ setTimeout(function () {
1368
+ state = getPlayingAppIds().length ? 'InGame' : (isInvisible ? "Invisible" : 'Online')
1369
+ }, 1000)
1370
+ },
1371
+ async accountLimitations(bis_limited_account, bis_community_banned, bis_locked_account, bis_limited_account_allowed_to_invite_friends) {
1372
+ callEvent(events.accountLimitations, {
1373
+ limited: bis_limited_account,
1374
+ communityBanned: bis_community_banned,
1375
+ locked: bis_locked_account,
1376
+ canInviteFriends: bis_limited_account_allowed_to_invite_friends
1377
+ })
1320
1378
  },
1321
1379
  }
1322
1380
 
@@ -1608,13 +1666,13 @@ function SteamClient({
1608
1666
  bindEvent()
1609
1667
  login()
1610
1668
 
1611
- steamClient._handlerManager.add(5480, function (payload) {
1669
+ steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientRequestedClientStats, function (payload) {
1612
1670
  const result = protoDecode(Protos.csgo.CMsgClientRequestedClientStats, payload.toBuffer())
1613
1671
  // console.log("CMsgClientRequestedClientStats", result);
1614
1672
  })
1615
- steamClient._handlerManager.add(6612, function (payload) {
1673
+ steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientMMSLobbyData, function (payload) {
1616
1674
  const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer())
1617
- // console.log("CMsgClientMMSLobbyData", result);
1675
+ // console.log("CMsgClientMMSLobbyData", result, result.metadata);
1618
1676
  })
1619
1677
  }
1620
1678
 
@@ -1937,7 +1995,7 @@ function SteamClient({
1937
1995
  ]
1938
1996
  }
1939
1997
  }
1940
-
1998
+
1941
1999
  function getPlayingAppIds() {
1942
2000
  return steamClient._playingAppIds || []
1943
2001
  }
@@ -1949,6 +2007,7 @@ function SteamClient({
1949
2007
  createLobby,
1950
2008
  updateLobby,
1951
2009
  joinLobby,
2010
+ getLobbyData,
1952
2011
  partyRegister,
1953
2012
  requestCoPlays,
1954
2013
  getPersonas,
@@ -1972,6 +2031,7 @@ function SteamClient({
1972
2031
  return steamClient
1973
2032
  },
1974
2033
  getAccountInfoName,
2034
+ getPersonaName,
1975
2035
  async getPlayersProfile(steamId, retry = 3) {
1976
2036
  for (let i = 0; i < retry; i++) {
1977
2037
  const profile = await getPlayersProfile(steamId)
package/index.js CHANGED
@@ -1623,6 +1623,7 @@ class SteamUser {
1623
1623
  async _httpRequest(params) {
1624
1624
  const isRedirect = typeof params.isRedirect === "boolean" ? params.isRedirect : true
1625
1625
  params = this._formatHttpRequest(params)
1626
+ const originalURL = params.url
1626
1627
 
1627
1628
  if (!this._cookies) {
1628
1629
  throw new Error(`[${this._sessionid}] You have not set cookie yet`)
@@ -1697,10 +1698,14 @@ class SteamUser {
1697
1698
  this._myProfile = `id/${customURL}`
1698
1699
  }
1699
1700
  } else if (redirectURL?.startsWith('https://steamcommunity.com/login/')) {
1700
- console.error('Login first', this._steamid_user)
1701
+ console.error('Login first', originalURL, this._steamid_user)
1702
+
1701
1703
  return {
1702
1704
  data: {
1703
- error: 'Login first'
1705
+ loginFirst: true,
1706
+ error: 'Login first',
1707
+ steamId: this._steamid_user,
1708
+ originalURL,
1704
1709
  }
1705
1710
  }
1706
1711
  }
@@ -5510,8 +5515,12 @@ class SteamUser {
5510
5515
  } else if (typeof _result === "string") {
5511
5516
 
5512
5517
  } else if (_result.success !== true) {
5513
- console.error(_result)
5514
- await sleep(5000)
5518
+ if (_result.loginFirst) {
5519
+ return _result
5520
+ } else {
5521
+ console.error(_result)
5522
+ await sleep(5000)
5523
+ }
5515
5524
  } else {
5516
5525
  result = _result
5517
5526
  break
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "steamutils",
3
- "version": "1.3.33",
3
+ "version": "1.3.34",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "alpha-common-utils": "^1.0.5",
7
7
  "axios": "^1.6.1",
8
+ "bytebuffer": "^5.0.1",
8
9
  "cheerio": "^1.0.0-rc.12",
9
10
  "crypto-js": "^4.2.0",
10
11
  "csgo-friendcode": "^3.0.3",