steamutils 1.3.30 → 1.3.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. package/.idea/deployment.xml +21 -0
  2. package/.idea/steamutils.iml +1 -1
  3. package/.idea/vcs.xml +1 -1
  4. package/SteamClient.js +132 -81
  5. package/bufferHelpers.js +115 -115
  6. package/free_packages.json +10048 -10048
  7. package/package.json +1 -1
  8. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  9. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  10. package/protos/csgo/clientmessages.proto +48 -48
  11. package/protos/csgo/connectionless_netmessages.proto +19 -19
  12. package/protos/csgo/cs_gameevents.proto +34 -34
  13. package/protos/csgo/cs_usercmd.proto +34 -34
  14. package/protos/csgo/cstrike15_gcmessages.proto +1402 -1402
  15. package/protos/csgo/cstrike15_usermessages.proto +596 -596
  16. package/protos/csgo/demo.proto +160 -160
  17. package/protos/csgo/econ_gcmessages.proto +228 -228
  18. package/protos/csgo/engine_gcmessages.proto +14 -14
  19. package/protos/csgo/enums_clientserver.proto +1529 -1529
  20. package/protos/csgo/fatdemo.proto +125 -125
  21. package/protos/csgo/gameevents.proto +120 -120
  22. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  23. package/protos/csgo/gcsystemmsgs.proto +242 -242
  24. package/protos/csgo/netmessages.proto +604 -604
  25. package/protos/csgo/network_connection.proto +126 -126
  26. package/protos/csgo/networkbasetypes.proto +244 -244
  27. package/protos/csgo/networksystem_protomessages.proto +17 -17
  28. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  29. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  30. package/protos/csgo/steammessages.proto +597 -597
  31. package/protos/csgo/steammessages_base.proto +301 -301
  32. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  33. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  34. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  35. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  36. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  37. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  38. package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +357 -357
  39. package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
  40. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  41. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  42. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  43. package/protos/csgo/te.proto +259 -259
  44. package/protos/csgo/uifontfile_format.proto +13 -13
  45. package/protos/csgo/usercmd.proto +38 -38
  46. package/protos/csgo/usermessages.proto +721 -721
  47. package/protos/csgo/valveextensions.proto +17 -17
  48. package/protos/google/protobuf/descriptor.proto +281 -281
  49. package/protos/steam/clientmetrics.proto +45 -45
  50. package/protos/steam/content_manifest.proto +62 -62
  51. package/protos/steam/contenthubs.proto +41 -41
  52. package/protos/steam/encrypted_app_ticket.proto +10 -10
  53. package/protos/steam/enums.proto +444 -444
  54. package/protos/steam/enums_clientserver.proto +1539 -1539
  55. package/protos/steam/enums_productinfo.proto +13 -13
  56. package/protos/steam/htmlmessages.proto +1027 -1027
  57. package/protos/steam/offline_ticket.proto +8 -8
  58. package/protos/steam/renderer/rendermessages.proto +893 -893
  59. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  60. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  61. package/protos/steam/steammessages_accounthardware.steamclient.proto +201 -201
  62. package/protos/steam/steammessages_appoverview.proto +187 -187
  63. package/protos/steam/steammessages_auth.steamclient.proto +435 -435
  64. package/protos/steam/steammessages_base.proto +332 -332
  65. package/protos/steam/steammessages_broadcast.steamclient.proto +759 -759
  66. package/protos/steam/steammessages_chat.steamclient.proto +1281 -1281
  67. package/protos/steam/steammessages_client_objects.proto +645 -645
  68. package/protos/steam/steammessages_clientlanp2p.proto +42 -42
  69. package/protos/steam/steammessages_clientmetrics.steamclient.proto +194 -194
  70. package/protos/steam/steammessages_clientnotificationtypes.proto +231 -231
  71. package/protos/steam/steammessages_clientserver.proto +392 -392
  72. package/protos/steam/steammessages_clientserver_2.proto +760 -760
  73. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  74. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  75. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  76. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  77. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  78. package/protos/steam/steammessages_clientserver_ucm.proto +205 -205
  79. package/protos/steam/steammessages_clientserver_uds.proto +124 -124
  80. package/protos/steam/steammessages_clientserver_ufs.proto +172 -172
  81. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  82. package/protos/steam/steammessages_clientsettings.proto +168 -168
  83. package/protos/steam/steammessages_cloud.steamclient.proto +513 -513
  84. package/protos/steam/steammessages_contentsystem.steamclient.proto +115 -115
  85. package/protos/steam/steammessages_credentials.steamclient.proto +115 -115
  86. package/protos/steam/steammessages_datapublisher.steamclient.proto +116 -116
  87. package/protos/steam/steammessages_depotbuilder.steamclient.proto +118 -118
  88. package/protos/steam/steammessages_deviceauth.steamclient.proto +203 -203
  89. package/protos/steam/steammessages_econ.steamclient.proto +150 -150
  90. package/protos/steam/steammessages_friendmessages.steamclient.proto +168 -168
  91. package/protos/steam/steammessages_gamenetworking.steamclient.proto +32 -32
  92. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  93. package/protos/steam/steammessages_gamenotifications.steamclient.proto +156 -156
  94. package/protos/steam/steammessages_gameservers.steamclient.proto +152 -152
  95. package/protos/steam/steammessages_hiddevices.proto +157 -157
  96. package/protos/steam/steammessages_inventory.steamclient.proto +224 -224
  97. package/protos/steam/steammessages_linkfilter.steamclient.proto +49 -49
  98. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +33 -33
  99. package/protos/steam/steammessages_market.steamclient.proto +26 -26
  100. package/protos/steam/steammessages_marketingmessages.steamclient.proto +274 -274
  101. package/protos/steam/steammessages_offline.steamclient.proto +40 -40
  102. package/protos/steam/steammessages_parental.steamclient.proto +228 -228
  103. package/protos/steam/steammessages_parties.steamclient.proto +94 -94
  104. package/protos/steam/steammessages_partnerapps.steamclient.proto +138 -138
  105. package/protos/steam/steammessages_player.steamclient.proto +1060 -1060
  106. package/protos/steam/steammessages_publishedfile.steamclient.proto +813 -813
  107. package/protos/steam/steammessages_qms.steamclient.proto +125 -125
  108. package/protos/steam/steammessages_remoteclient.proto +99 -99
  109. package/protos/steam/steammessages_remoteclient_discovery.proto +235 -235
  110. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +86 -86
  111. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  112. package/protos/steam/steammessages_remoteplay.proto +976 -976
  113. package/protos/steam/steammessages_secrets.steamclient.proto +39 -39
  114. package/protos/steam/steammessages_shader.steamclient.proto +108 -108
  115. package/protos/steam/steammessages_site_license.steamclient.proto +128 -128
  116. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  117. package/protos/steam/steammessages_siteserverui.proto +130 -130
  118. package/protos/steam/steammessages_star.steamclient.proto +64 -64
  119. package/protos/steam/steammessages_steamtv.steamclient.proto +630 -630
  120. package/protos/steam/steammessages_store.steamclient.proto +371 -371
  121. package/protos/steam/steammessages_storebrowse.steamclient.proto +402 -402
  122. package/protos/steam/steammessages_timedtrial.steamclient.proto +50 -50
  123. package/protos/steam/steammessages_twofactor.steamclient.proto +186 -186
  124. package/protos/steam/steammessages_unified_base.steamclient.proto +33 -33
  125. package/protos/steam/steammessages_unified_test.steamclient.proto +61 -61
  126. package/protos/steam/steammessages_useraccount.steamclient.proto +249 -249
  127. package/protos/steam/steammessages_vac.steamclient.proto +44 -44
  128. package/protos/steam/steammessages_video.steamclient.proto +171 -171
  129. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  130. package/protos/steam/steammessages_workshop.steamclient.proto +23 -23
  131. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  132. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  133. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  134. package/protos/steam/webuimessages_base.proto +24 -24
  135. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  136. package/protos/steam/webuimessages_steamengine.proto +32 -32
  137. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  138. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  139. package/protos/steam/webuimessages_transport.proto +18 -18
  140. package/protos/steam/webuimessages_transportvalidation.proto +97 -97
  141. package/protos/webui/common.proto +5508 -5508
  142. package/protos/webui/common_base.proto +27 -27
  143. package/protos/webui/service_accountlinking.proto +27 -27
  144. package/protos/webui/service_accountprivacy.proto +42 -42
  145. package/protos/webui/service_auction.proto +97 -97
  146. package/protos/webui/service_authentication.proto +222 -222
  147. package/protos/webui/service_authenticationsupport.proto +74 -74
  148. package/protos/webui/service_broadcast.proto +562 -562
  149. package/protos/webui/service_chat.proto +11 -11
  150. package/protos/webui/service_chatroom.proto +810 -810
  151. package/protos/webui/service_chatusability.proto +107 -107
  152. package/protos/webui/service_clan.proto +41 -41
  153. package/protos/webui/service_clanchatrooms.proto +25 -25
  154. package/protos/webui/service_clanfaqs.proto +202 -202
  155. package/protos/webui/service_clientcomm.proto +150 -150
  156. package/protos/webui/service_clientmetrics.proto +63 -63
  157. package/protos/webui/service_cloud.proto +222 -222
  158. package/protos/webui/service_cloudconfigstore.proto +51 -51
  159. package/protos/webui/service_cloudgaming.proto +30 -30
  160. package/protos/webui/service_community.proto +365 -365
  161. package/protos/webui/service_econ.proto +134 -134
  162. package/protos/webui/service_embedded.proto +24 -24
  163. package/protos/webui/service_experimentservice.proto +6 -6
  164. package/protos/webui/service_fovasvideo.proto +15 -15
  165. package/protos/webui/service_friendmessages.proto +133 -133
  166. package/protos/webui/service_friendslist.proto +70 -70
  167. package/protos/webui/service_gamenotes.proto +15 -15
  168. package/protos/webui/service_helprequestlogs.proto +26 -26
  169. package/protos/webui/service_loyaltyrewards.proto +252 -252
  170. package/protos/webui/service_marketingmessages.proto +184 -184
  171. package/protos/webui/service_mobileapp.proto +18 -18
  172. package/protos/webui/service_mobileauth.proto +24 -24
  173. package/protos/webui/service_mobiledevice.proto +26 -26
  174. package/protos/webui/service_mobileperaccount.proto +31 -31
  175. package/protos/webui/service_news.proto +101 -101
  176. package/protos/webui/service_parental.proto +178 -178
  177. package/protos/webui/service_partnermembershipinvite.proto +29 -29
  178. package/protos/webui/service_partnerstorebrowse.proto +6 -6
  179. package/protos/webui/service_phone.proto +51 -51
  180. package/protos/webui/service_physicalgoods.proto +15 -15
  181. package/protos/webui/service_player.proto +885 -885
  182. package/protos/webui/service_promotioneventinvites.proto +50 -50
  183. package/protos/webui/service_promotionplanning.proto +72 -72
  184. package/protos/webui/service_publishedfile.proto +687 -687
  185. package/protos/webui/service_publishing.proto +119 -119
  186. package/protos/webui/service_quest.proto +127 -127
  187. package/protos/webui/service_salefeature.proto +315 -315
  188. package/protos/webui/service_saleitemrewards.proto +54 -54
  189. package/protos/webui/service_shoppingcart.proto +108 -108
  190. package/protos/webui/service_steamawards.proto +19 -19
  191. package/protos/webui/service_steamcharts.proto +75 -75
  192. package/protos/webui/service_steamengine.proto +36 -36
  193. package/protos/webui/service_steamlearn.proto +727 -727
  194. package/protos/webui/service_steamnotification.proto +84 -84
  195. package/protos/webui/service_steamtv.proto +495 -495
  196. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  197. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  198. package/protos/webui/service_storagedevicemanager.proto +104 -104
  199. package/protos/webui/service_store.proto +289 -289
  200. package/protos/webui/service_storeappsimilarity.proto +76 -76
  201. package/protos/webui/service_storebrowse.proto +73 -73
  202. package/protos/webui/service_storequery.proto +97 -97
  203. package/protos/webui/service_storesales.proto +15 -15
  204. package/protos/webui/service_storetopsellers.proto +44 -44
  205. package/protos/webui/service_systemmanager.proto +11 -11
  206. package/protos/webui/service_test_transporterror.proto +6 -6
  207. package/protos/webui/service_transportauth.proto +12 -12
  208. package/protos/webui/service_transportvalidation.proto +69 -69
  209. package/protos/webui/service_twofactor.proto +181 -181
  210. package/protos/webui/service_useraccount.proto +138 -138
  211. package/protos/webui/service_usergameactivity.proto +34 -34
  212. package/protos/webui/service_usergamenotes.proto +53 -53
  213. package/protos/webui/service_usernews.proto +68 -68
  214. package/protos/webui/service_userreviews.proto +96 -96
  215. package/protos/webui/service_video.proto +128 -128
  216. package/protos/webui/service_voicechat.proto +139 -139
  217. package/protos/webui/service_webrtc.proto +52 -52
  218. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
4
+ <serverData>
5
+ <paths name="steamsupport">
6
+ <serverdata>
7
+ <mappings>
8
+ <mapping local="$PROJECT_DIR$" web="/" />
9
+ </mappings>
10
+ </serverdata>
11
+ </paths>
12
+ <paths name="steamsupportui">
13
+ <serverdata>
14
+ <mappings>
15
+ <mapping local="$PROJECT_DIR$" web="/" />
16
+ </mappings>
17
+ </serverdata>
18
+ </paths>
19
+ </serverData>
20
+ </component>
21
+ </project>
@@ -2,8 +2,8 @@
2
2
  <module type="WEB_MODULE" version="4">
3
3
  <component name="NewModuleRootManager">
4
4
  <content url="file://$MODULE_DIR$">
5
- <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
5
  <excludeFolder url="file://$MODULE_DIR$/temp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
7
  <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
8
  </content>
9
9
  <orderEntry type="inheritedJdk" />
package/.idea/vcs.xml CHANGED
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <project version="4">
3
3
  <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
5
  </component>
6
6
  </project>
package/SteamClient.js CHANGED
@@ -95,13 +95,14 @@ function SteamClient({
95
95
  isFakeGameScore = true,
96
96
  isPartyRegister = true,
97
97
  isAutoPlay = false,
98
+ isInvisible = false,
98
99
  autoAcceptTradeRequest = false,
99
100
  autoReconnect = true,
100
101
  MAX_GAME_PLAY = 10
101
102
  }) {
102
103
  const steamClient = new SteamUser()
103
104
  let prime = null
104
- let state = 'Offline'//InGame, Online
105
+ let state = 'Offline'//InGame, Online, Invisible
105
106
  let isLogOff = false
106
107
  let playingBlocked = null
107
108
  const richPresence = {}
@@ -442,36 +443,37 @@ function SteamClient({
442
443
  return
443
444
  }
444
445
 
445
- steamClient._send(
446
- {
447
- msg: Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby,
448
- proto: {
449
- steamid: steamClient.steamID.getSteamID64(),
450
- routing_appid: 730
451
- }
452
- },
453
- protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
454
- app_id: 730,
455
- max_members: 1,
456
- lobby_type: 1,
457
- lobby_flags: 1
458
- })
459
- );
460
-
461
446
  return new Promise(resolve => {
462
447
  const timeout = setTimeout(function () {
463
- delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse];
464
448
  resolve()
465
- }, 60000)
466
- steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse, (payload) => {
467
- clearTimeout(timeout)
468
- delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse];
469
- const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
470
- const steam_id_lobby = result.steam_id_lobby.toString();
471
- resolve(steam_id_lobby);
472
- });
449
+ }, 30000)
450
+
451
+ steamClient._send(
452
+ {
453
+ msg: Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby,
454
+ proto: {
455
+ steamid: steamClient.steamID.getSteamID64(),
456
+ routing_appid: 730
457
+ }
458
+ },
459
+ protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
460
+ app_id: 730,
461
+ max_members: 1,
462
+ lobby_type: 1,
463
+ lobby_flags: 1
464
+ }), function (payload) {
465
+ clearTimeout(timeout)
466
+ const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
467
+ resolve(result.steam_id_lobby.toString())
468
+ }
469
+ );
473
470
  })
474
471
 
472
+ // return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse, function (payload) {
473
+ // const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
474
+ // return result.steam_id_lobby.toString()
475
+ // })
476
+
475
477
  // steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby, {
476
478
  // steamid: steamClient.steamID,
477
479
  // routing_appid: 730,
@@ -488,53 +490,54 @@ function SteamClient({
488
490
  return
489
491
  }
490
492
 
491
- steamClient._send(
492
- {
493
- msg: Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyData,
494
- proto: {
495
- steamid: steamClient.steamID.getSteamID64(),
496
- routing_appid: 730
497
- }
498
- },
499
- protoEncode(Protos.csgo.CMsgClientMMSSetLobbyData, {
500
- app_id: 730,
501
- steam_id_lobby: lobbyID,
502
- steam_id_member: '0',
503
- max_members: 10,
504
- lobby_type: 1,
505
- lobby_flags: 1,
506
- metadata: encode({
507
- 'game:ark': '0',
508
- // Country/Message
509
- 'game:loc': '',
510
- 'game:mapgroupname': 'mg_de_mirage',
511
- 'game:mode': 'competitive',
512
- 'game:prime': '1',
513
- 'game:type': 'classic',
514
- 'members:numPlayers': '1',
515
- 'options:action': 'custommatch',
516
- 'options:anytypemode': '0',
517
- 'system:access': 'private',
518
- 'system:network': 'LIVE',
519
- uids: [steamClient.steamID]
520
- }, [0x00, 0x00], [0x08], {uids: encodeUids}).toBuffer()
521
- })
522
- );
523
-
524
493
  return new Promise(resolve => {
525
494
  const timeout = setTimeout(function () {
526
- delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse];
527
495
  resolve()
528
- }, 60000)
529
- //ClientMMSLobbyData
530
- steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse, (payload) => {
531
- clearTimeout(timeout)
532
- delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse];
533
- const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
534
- const steam_id_lobby = result.steam_id_lobby.toString();
535
- resolve(steam_id_lobby);
536
- });
496
+ }, 30000)
497
+
498
+ steamClient._send(
499
+ {
500
+ msg: Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyData,
501
+ proto: {
502
+ steamid: steamClient.steamID.getSteamID64(),
503
+ routing_appid: 730
504
+ }
505
+ },
506
+ protoEncode(Protos.csgo.CMsgClientMMSSetLobbyData, {
507
+ app_id: 730,
508
+ steam_id_lobby: lobbyID,
509
+ steam_id_member: '0',
510
+ max_members: 10,
511
+ lobby_type: 1,
512
+ lobby_flags: 1,
513
+ metadata: encode({
514
+ 'game:ark': '0',
515
+ // Country/Message
516
+ 'game:loc': '',
517
+ 'game:mapgroupname': 'mg_de_mirage',
518
+ 'game:mode': 'competitive',
519
+ 'game:prime': '1',
520
+ 'game:type': 'classic',
521
+ 'members:numPlayers': '1',
522
+ 'options:action': 'custommatch',
523
+ 'options:anytypemode': '0',
524
+ 'system:access': 'private',
525
+ 'system:network': 'LIVE',
526
+ uids: [steamClient.steamID]
527
+ }, [0x00, 0x00], [0x08], {uids: encodeUids}).toBuffer()
528
+ }),
529
+ function (payload) {
530
+ clearTimeout(timeout)
531
+ const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
532
+ resolve(result.steam_id_lobby.toString())
533
+ }
534
+ );
537
535
  })
536
+
537
+ // return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse, function (payload) {
538
+ // const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
539
+ // return result.steam_id_lobby.toString()
540
+ // })
538
541
  }
539
542
 
540
543
  async function invite2Lobby(lobbyID, steamId) {
@@ -554,11 +557,8 @@ function SteamClient({
554
557
  app_id: 730,
555
558
  steam_id_lobby: lobbyID,
556
559
  steam_id_user_invited: steamId,
557
- })
558
- );
560
+ }));
559
561
 
560
-
561
- const accountid = new SteamID(steamId).accountid;
562
562
  // lobbyID = new SteamID(lobbyID).accountid;
563
563
 
564
564
  // Protos.csgo.EMsg.k_EMsgGCHInviteUserToLobby
@@ -704,7 +704,7 @@ function SteamClient({
704
704
  break
705
705
  }
706
706
  case Protos.csgo.ECsgoGCMsg.k_EMsgClientMMSJoinLobbyResponse: {
707
- let msg = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload)
707
+ const msg = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload);
708
708
  log(msg)
709
709
  break
710
710
  }
@@ -925,6 +925,9 @@ function SteamClient({
925
925
  player_cur_xp: 327684501,
926
926
  player_xp_bonus_flags: 0
927
927
  }
928
+ if (result?.global_stats?.required_appid_version && result.global_stats.required_appid_version > CSGO_VER) {
929
+ CSGO_VER = result.global_stats.required_appid_version
930
+ }
928
931
  callEvent(events.csgoClientHello, result)
929
932
  break
930
933
  }
@@ -1132,10 +1135,8 @@ function SteamClient({
1132
1135
  }
1133
1136
  },
1134
1137
  async loggedOn(loggedOnResponse) {
1135
- steamClient.setPersona(SteamUser.EPersonaState.Online)
1136
- state = 'Online'
1137
- await sendHello()
1138
1138
  callEvent(events.loggedOn, loggedOnResponse)
1139
+ updateInvisible()
1139
1140
  updateAutoRequestFreeLicense()
1140
1141
  updateAutoGamePlay()
1141
1142
  },
@@ -1341,18 +1342,15 @@ function SteamClient({
1341
1342
  }
1342
1343
  const timestamp = new Date(data.server_timestamp).getTime()
1343
1344
  const steamId = data.steamid_friend.getSteamID64()
1344
- const personas = await getPersonas([steamId])
1345
- const player_name = personas.find(p => p.id == steamId)?.player_name || ''
1346
1345
  const invite = [`Invited you to play a game!`, `Đã mời bạn chơi một trò chơi!`].includes(data.message_no_bbcode || data.message)
1347
1346
  const emotion = (data.message_no_bbcode || '').split(' ').find(m => m.startsWith(':') && m.endsWith(':'))
1348
1347
 
1349
1348
  callEvent(events.friendMessage, {
1350
- player_name,
1349
+ ...data,
1351
1350
  message: data.message_no_bbcode,
1352
1351
  invite,
1353
1352
  steamId,
1354
1353
  timestamp,
1355
- from_limited_account: data.from_limited_account,
1356
1354
  emotion,
1357
1355
  })
1358
1356
  },
@@ -1411,6 +1409,33 @@ function SteamClient({
1411
1409
  }
1412
1410
  }
1413
1411
 
1412
+ function getHandlerResult(msg, handler) {
1413
+ const timeout = {current: null}
1414
+ return new Promise(resolve => {
1415
+
1416
+ function myhandler(...args) {
1417
+ timeout.current && clearTimeout(timeout.current)
1418
+ removeHandler()
1419
+ resolve(handler?.(...args))
1420
+ }
1421
+
1422
+ function removeHandler() {
1423
+ if (Array.isArray(steamClient._handlerManager._handlers[msg])) {
1424
+ const index = steamClient._handlerManager._handlers[msg].findIndex(_handler => _handler === myhandler)
1425
+ if (index > -1) {
1426
+ steamClient._handlerManager._handlers[msg].splice(index, 1)
1427
+ }
1428
+ }
1429
+ }
1430
+
1431
+ timeout.current = setTimeout(function () {
1432
+ removeHandler()
1433
+ resolve()
1434
+ }, 60000)
1435
+ steamClient._handlerManager.add(msg, myhandler);
1436
+ })
1437
+ }
1438
+
1414
1439
  function getFriendList() {
1415
1440
  return Object.keys(steamClient.myFriends).filter(steamId => steamClient.myFriends[steamId] === SteamUser.EFriendRelationship.Friend)
1416
1441
  }
@@ -1578,6 +1603,15 @@ function SteamClient({
1578
1603
  function init() {
1579
1604
  bindEvent()
1580
1605
  login()
1606
+
1607
+ steamClient._handlerManager.add(5480, function (payload) {
1608
+ const result = protoDecode(Protos.csgo.CMsgClientRequestedClientStats, payload.toBuffer())
1609
+ // console.log("CMsgClientRequestedClientStats", result);
1610
+ })
1611
+ steamClient._handlerManager.add(6612, function (payload) {
1612
+ const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer())
1613
+ // console.log("CMsgClientMMSLobbyData", result);
1614
+ })
1581
1615
  }
1582
1616
 
1583
1617
 
@@ -1777,6 +1811,16 @@ function SteamClient({
1777
1811
  }
1778
1812
  }
1779
1813
 
1814
+ function updateInvisible() {
1815
+ if (isInvisible) {
1816
+ steamClient.setPersona(SteamUser.EPersonaState.Invisible)
1817
+ state = 'Invisible'
1818
+ } else {
1819
+ steamClient.setPersona(SteamUser.EPersonaState.Online)
1820
+ state = 'Online'
1821
+ }
1822
+ }
1823
+
1780
1824
  async function gamesPlayed(apps) {
1781
1825
  if (!Array.isArray(apps)) {
1782
1826
  apps = [apps]
@@ -1968,6 +2012,13 @@ function SteamClient({
1968
2012
  updateAutoGamePlay()
1969
2013
  }
1970
2014
  },
2015
+ setIsInvisible(change) {
2016
+ change = !!change
2017
+ if (isInvisible !== change) {
2018
+ isInvisible = change
2019
+ updateInvisible()
2020
+ }
2021
+ },
1971
2022
  setFakeGameScore(change) {
1972
2023
  change = !!change
1973
2024
  if (isFakeGameScore !== change) {
package/bufferHelpers.js CHANGED
@@ -1,115 +1,115 @@
1
- import ByteBuffer from 'bytebuffer';
2
- import SteamID from 'steamid';
3
-
4
- const Type = {
5
- None : 0,
6
- String : 1,
7
- Int32 : 2,
8
- Float32 : 3,
9
- Pointer : 4,
10
- WideString : 5,
11
- Color : 6,
12
- UInt64 : 7,
13
- End : 8
14
- }
15
-
16
- // Encodes an object into a ByteBuffer
17
- export const encode = (
18
- _object,
19
- prefix = [0x00, 0x00],
20
- suffix = [],
21
- customEncodeFields = {}
22
- ) => {
23
- // Create a copy of the input object to avoid modifying it
24
- const object = { ..._object };
25
- const buffer = new ByteBuffer();
26
-
27
- // Write the prefix bytes to the buffer
28
- for (let pre of prefix) {
29
- buffer.writeByte(pre);
30
- }
31
-
32
- // Iterate through the object's properties and encode them
33
- for (let item in object) {
34
- if (object.hasOwnProperty(item) === false) {
35
- continue;
36
- }
37
-
38
- // If a custom encoder function exists for the property, use it
39
- if (typeof customEncodeFields[item] === 'function') {
40
- object[item] = customEncodeFields[item](object[item]);
41
- }
42
- _encode(object[item], buffer, item);
43
- }
44
-
45
- // Write the suffix bytes to the buffer
46
- for (let suf of suffix) {
47
- buffer.writeByte(suf);
48
- }
49
-
50
- // Write an End marker to the buffer
51
- buffer.writeByte(Type.End);
52
- buffer.flip(); // Prepare the buffer for reading
53
- return buffer;
54
- };
55
-
56
- // Encodes individual properties into the ByteBuffer
57
- const _encode = (object, buffer, name) => {
58
- if (object instanceof Buffer) {
59
- // If the object is a Buffer
60
- buffer.writeByte(Type.String);
61
- buffer.writeCString(name);
62
-
63
- // Convert the Buffer to a hexadecimal string, split into 2-character parts, and write each part as a byte
64
- let parts = object
65
- .toString('hex')
66
- .toUpperCase()
67
- .match(/.{1,2}/g);
68
-
69
- for (let part of parts) {
70
- buffer.writeByte(parseInt('0x' + part));
71
- }
72
- } else {
73
- // If the object is not a Buffer, check its type
74
- switch (typeof object) {
75
- case 'object': {
76
- buffer.writeByte(Type.None);
77
- buffer.writeCString(name);
78
-
79
- for (let index in object) {
80
- _encode(object[index], buffer, index); // Recursively encode each property
81
- }
82
-
83
- buffer.writeByte(Type.End);
84
- break;
85
- }
86
- case 'string': {
87
- buffer.writeByte(Type.String);
88
- buffer.writeCString(name);
89
- buffer.writeCString(object ? object : '');
90
- break;
91
- }
92
- case 'number': {
93
- buffer.writeByte(Type.String);
94
- buffer.writeCString(name);
95
- buffer.writeCString(object.toString());
96
- break;
97
- }
98
- }
99
- }
100
- };
101
-
102
- // Encodes SteamIDs into a Buffer
103
- export const encodeUids = (steamids) => {
104
- const outputBuffer = [];
105
-
106
- for (let id of steamids.map((s) => s.accountid)) {
107
- while (id > 0x7f) {
108
- outputBuffer.push((id | 0x80) & 0xff);
109
- id >>= 7;
110
- }
111
- outputBuffer.push(id);
112
- }
113
- outputBuffer.push(0x00); // Null terminator
114
- return Buffer.from(outputBuffer);
115
- };
1
+ import ByteBuffer from 'bytebuffer';
2
+ import SteamID from 'steamid';
3
+
4
+ const Type = {
5
+ None : 0,
6
+ String : 1,
7
+ Int32 : 2,
8
+ Float32 : 3,
9
+ Pointer : 4,
10
+ WideString : 5,
11
+ Color : 6,
12
+ UInt64 : 7,
13
+ End : 8
14
+ }
15
+
16
+ // Encodes an object into a ByteBuffer
17
+ export const encode = (
18
+ _object,
19
+ prefix = [0x00, 0x00],
20
+ suffix = [],
21
+ customEncodeFields = {}
22
+ ) => {
23
+ // Create a copy of the input object to avoid modifying it
24
+ const object = { ..._object };
25
+ const buffer = new ByteBuffer();
26
+
27
+ // Write the prefix bytes to the buffer
28
+ for (let pre of prefix) {
29
+ buffer.writeByte(pre);
30
+ }
31
+
32
+ // Iterate through the object's properties and encode them
33
+ for (let item in object) {
34
+ if (object.hasOwnProperty(item) === false) {
35
+ continue;
36
+ }
37
+
38
+ // If a custom encoder function exists for the property, use it
39
+ if (typeof customEncodeFields[item] === 'function') {
40
+ object[item] = customEncodeFields[item](object[item]);
41
+ }
42
+ _encode(object[item], buffer, item);
43
+ }
44
+
45
+ // Write the suffix bytes to the buffer
46
+ for (let suf of suffix) {
47
+ buffer.writeByte(suf);
48
+ }
49
+
50
+ // Write an End marker to the buffer
51
+ buffer.writeByte(Type.End);
52
+ buffer.flip(); // Prepare the buffer for reading
53
+ return buffer;
54
+ };
55
+
56
+ // Encodes individual properties into the ByteBuffer
57
+ const _encode = (object, buffer, name) => {
58
+ if (object instanceof Buffer) {
59
+ // If the object is a Buffer
60
+ buffer.writeByte(Type.String);
61
+ buffer.writeCString(name);
62
+
63
+ // Convert the Buffer to a hexadecimal string, split into 2-character parts, and write each part as a byte
64
+ let parts = object
65
+ .toString('hex')
66
+ .toUpperCase()
67
+ .match(/.{1,2}/g);
68
+
69
+ for (let part of parts) {
70
+ buffer.writeByte(parseInt('0x' + part));
71
+ }
72
+ } else {
73
+ // If the object is not a Buffer, check its type
74
+ switch (typeof object) {
75
+ case 'object': {
76
+ buffer.writeByte(Type.None);
77
+ buffer.writeCString(name);
78
+
79
+ for (let index in object) {
80
+ _encode(object[index], buffer, index); // Recursively encode each property
81
+ }
82
+
83
+ buffer.writeByte(Type.End);
84
+ break;
85
+ }
86
+ case 'string': {
87
+ buffer.writeByte(Type.String);
88
+ buffer.writeCString(name);
89
+ buffer.writeCString(object ? object : '');
90
+ break;
91
+ }
92
+ case 'number': {
93
+ buffer.writeByte(Type.String);
94
+ buffer.writeCString(name);
95
+ buffer.writeCString(object.toString());
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ };
101
+
102
+ // Encodes SteamIDs into a Buffer
103
+ export const encodeUids = (steamids) => {
104
+ const outputBuffer = [];
105
+
106
+ for (let id of steamids.map((s) => s.accountid)) {
107
+ while (id > 0x7f) {
108
+ outputBuffer.push((id | 0x80) & 0xff);
109
+ id >>= 7;
110
+ }
111
+ outputBuffer.push(id);
112
+ }
113
+ outputBuffer.push(0x00); // Null terminator
114
+ return Buffer.from(outputBuffer);
115
+ };