steamutils 1.3.28 → 1.3.31
Sign up to get free protection for your applications and to get access to all the features.
- package/.idea/deployment.xml +21 -0
- package/.idea/steamutils.iml +1 -1
- package/.idea/vcs.xml +1 -1
- package/SteamClient.js +126 -77
- package/bufferHelpers.js +115 -115
- package/free_packages.json +10048 -10048
- package/package.json +1 -1
- package/protos/csgo/base_gcmessages_csgo.proto +547 -547
- package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
- package/protos/csgo/clientmessages.proto +48 -48
- package/protos/csgo/connectionless_netmessages.proto +19 -19
- package/protos/csgo/cs_gameevents.proto +34 -34
- package/protos/csgo/cs_usercmd.proto +34 -34
- package/protos/csgo/cstrike15_gcmessages.proto +1402 -1402
- package/protos/csgo/cstrike15_usermessages.proto +596 -596
- package/protos/csgo/demo.proto +160 -160
- package/protos/csgo/econ_gcmessages.proto +228 -228
- package/protos/csgo/engine_gcmessages.proto +14 -14
- package/protos/csgo/enums_clientserver.proto +1529 -1529
- package/protos/csgo/fatdemo.proto +125 -125
- package/protos/csgo/gameevents.proto +120 -120
- package/protos/csgo/gcsdk_gcmessages.proto +323 -323
- package/protos/csgo/gcsystemmsgs.proto +242 -242
- package/protos/csgo/netmessages.proto +604 -604
- package/protos/csgo/network_connection.proto +126 -126
- package/protos/csgo/networkbasetypes.proto +244 -244
- package/protos/csgo/networksystem_protomessages.proto +17 -17
- package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
- package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
- package/protos/csgo/steammessages.proto +597 -597
- package/protos/csgo/steammessages_base.proto +301 -301
- package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
- package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
- package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
- package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
- package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
- package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
- package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +357 -357
- package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
- package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
- package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/csgo/te.proto +259 -259
- package/protos/csgo/uifontfile_format.proto +13 -13
- package/protos/csgo/usercmd.proto +38 -38
- package/protos/csgo/usermessages.proto +721 -721
- package/protos/csgo/valveextensions.proto +17 -17
- package/protos/google/protobuf/descriptor.proto +281 -281
- package/protos/steam/clientmetrics.proto +45 -45
- package/protos/steam/content_manifest.proto +62 -62
- package/protos/steam/contenthubs.proto +41 -41
- package/protos/steam/encrypted_app_ticket.proto +10 -10
- package/protos/steam/enums.proto +444 -444
- package/protos/steam/enums_clientserver.proto +1539 -1539
- package/protos/steam/enums_productinfo.proto +13 -13
- package/protos/steam/htmlmessages.proto +1027 -1027
- package/protos/steam/offline_ticket.proto +8 -8
- package/protos/steam/renderer/rendermessages.proto +893 -893
- package/protos/steam/steamdatagram_messages_auth.proto +65 -65
- package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
- package/protos/steam/steammessages_accounthardware.steamclient.proto +201 -201
- package/protos/steam/steammessages_appoverview.proto +187 -187
- package/protos/steam/steammessages_auth.steamclient.proto +435 -435
- package/protos/steam/steammessages_base.proto +332 -332
- package/protos/steam/steammessages_broadcast.steamclient.proto +759 -759
- package/protos/steam/steammessages_chat.steamclient.proto +1281 -1281
- package/protos/steam/steammessages_client_objects.proto +645 -645
- package/protos/steam/steammessages_clientlanp2p.proto +42 -42
- package/protos/steam/steammessages_clientmetrics.steamclient.proto +194 -194
- package/protos/steam/steammessages_clientnotificationtypes.proto +231 -231
- package/protos/steam/steammessages_clientserver.proto +392 -392
- package/protos/steam/steammessages_clientserver_2.proto +760 -760
- package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
- package/protos/steam/steammessages_clientserver_friends.proto +260 -260
- package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
- package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
- package/protos/steam/steammessages_clientserver_login.proto +167 -167
- package/protos/steam/steammessages_clientserver_ucm.proto +205 -205
- package/protos/steam/steammessages_clientserver_uds.proto +124 -124
- package/protos/steam/steammessages_clientserver_ufs.proto +172 -172
- package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
- package/protos/steam/steammessages_clientsettings.proto +168 -168
- package/protos/steam/steammessages_cloud.steamclient.proto +513 -513
- package/protos/steam/steammessages_contentsystem.steamclient.proto +115 -115
- package/protos/steam/steammessages_credentials.steamclient.proto +115 -115
- package/protos/steam/steammessages_datapublisher.steamclient.proto +116 -116
- package/protos/steam/steammessages_depotbuilder.steamclient.proto +118 -118
- package/protos/steam/steammessages_deviceauth.steamclient.proto +203 -203
- package/protos/steam/steammessages_econ.steamclient.proto +150 -150
- package/protos/steam/steammessages_friendmessages.steamclient.proto +168 -168
- package/protos/steam/steammessages_gamenetworking.steamclient.proto +32 -32
- package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
- package/protos/steam/steammessages_gamenotifications.steamclient.proto +156 -156
- package/protos/steam/steammessages_gameservers.steamclient.proto +152 -152
- package/protos/steam/steammessages_hiddevices.proto +157 -157
- package/protos/steam/steammessages_inventory.steamclient.proto +224 -224
- package/protos/steam/steammessages_linkfilter.steamclient.proto +49 -49
- package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +33 -33
- package/protos/steam/steammessages_market.steamclient.proto +26 -26
- package/protos/steam/steammessages_marketingmessages.steamclient.proto +274 -274
- package/protos/steam/steammessages_offline.steamclient.proto +40 -40
- package/protos/steam/steammessages_parental.steamclient.proto +228 -228
- package/protos/steam/steammessages_parties.steamclient.proto +94 -94
- package/protos/steam/steammessages_partnerapps.steamclient.proto +138 -138
- package/protos/steam/steammessages_player.steamclient.proto +1060 -1060
- package/protos/steam/steammessages_publishedfile.steamclient.proto +813 -813
- package/protos/steam/steammessages_qms.steamclient.proto +125 -125
- package/protos/steam/steammessages_remoteclient.proto +99 -99
- package/protos/steam/steammessages_remoteclient_discovery.proto +235 -235
- package/protos/steam/steammessages_remoteclient_service.steamclient.proto +86 -86
- package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
- package/protos/steam/steammessages_remoteplay.proto +976 -976
- package/protos/steam/steammessages_secrets.steamclient.proto +39 -39
- package/protos/steam/steammessages_shader.steamclient.proto +108 -108
- package/protos/steam/steammessages_site_license.steamclient.proto +128 -128
- package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
- package/protos/steam/steammessages_siteserverui.proto +130 -130
- package/protos/steam/steammessages_star.steamclient.proto +64 -64
- package/protos/steam/steammessages_steamtv.steamclient.proto +630 -630
- package/protos/steam/steammessages_store.steamclient.proto +371 -371
- package/protos/steam/steammessages_storebrowse.steamclient.proto +402 -402
- package/protos/steam/steammessages_timedtrial.steamclient.proto +50 -50
- package/protos/steam/steammessages_twofactor.steamclient.proto +186 -186
- package/protos/steam/steammessages_unified_base.steamclient.proto +33 -33
- package/protos/steam/steammessages_unified_test.steamclient.proto +61 -61
- package/protos/steam/steammessages_useraccount.steamclient.proto +249 -249
- package/protos/steam/steammessages_vac.steamclient.proto +44 -44
- package/protos/steam/steammessages_video.steamclient.proto +171 -171
- package/protos/steam/steammessages_virtualcontroller.proto +138 -138
- package/protos/steam/steammessages_workshop.steamclient.proto +23 -23
- package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
- package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/steam/webuimessages_base.proto +24 -24
- package/protos/steam/webuimessages_gamenotes.proto +21 -21
- package/protos/steam/webuimessages_steamengine.proto +32 -32
- package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
- package/protos/steam/webuimessages_systemmanager.proto +17 -17
- package/protos/steam/webuimessages_transport.proto +18 -18
- package/protos/steam/webuimessages_transportvalidation.proto +97 -97
- package/protos/webui/common.proto +5508 -5508
- package/protos/webui/common_base.proto +27 -27
- package/protos/webui/service_accountlinking.proto +27 -27
- package/protos/webui/service_accountprivacy.proto +42 -42
- package/protos/webui/service_auction.proto +97 -97
- package/protos/webui/service_authentication.proto +222 -222
- package/protos/webui/service_authenticationsupport.proto +74 -74
- package/protos/webui/service_broadcast.proto +562 -562
- package/protos/webui/service_chat.proto +11 -11
- package/protos/webui/service_chatroom.proto +810 -810
- package/protos/webui/service_chatusability.proto +107 -107
- package/protos/webui/service_clan.proto +41 -41
- package/protos/webui/service_clanchatrooms.proto +25 -25
- package/protos/webui/service_clanfaqs.proto +202 -202
- package/protos/webui/service_clientcomm.proto +150 -150
- package/protos/webui/service_clientmetrics.proto +63 -63
- package/protos/webui/service_cloud.proto +222 -222
- package/protos/webui/service_cloudconfigstore.proto +51 -51
- package/protos/webui/service_cloudgaming.proto +30 -30
- package/protos/webui/service_community.proto +365 -365
- package/protos/webui/service_econ.proto +134 -134
- package/protos/webui/service_embedded.proto +24 -24
- package/protos/webui/service_experimentservice.proto +6 -6
- package/protos/webui/service_fovasvideo.proto +15 -15
- package/protos/webui/service_friendmessages.proto +133 -133
- package/protos/webui/service_friendslist.proto +70 -70
- package/protos/webui/service_gamenotes.proto +15 -15
- package/protos/webui/service_helprequestlogs.proto +26 -26
- package/protos/webui/service_loyaltyrewards.proto +252 -252
- package/protos/webui/service_marketingmessages.proto +184 -184
- package/protos/webui/service_mobileapp.proto +18 -18
- package/protos/webui/service_mobileauth.proto +24 -24
- package/protos/webui/service_mobiledevice.proto +26 -26
- package/protos/webui/service_mobileperaccount.proto +31 -31
- package/protos/webui/service_news.proto +101 -101
- package/protos/webui/service_parental.proto +178 -178
- package/protos/webui/service_partnermembershipinvite.proto +29 -29
- package/protos/webui/service_partnerstorebrowse.proto +6 -6
- package/protos/webui/service_phone.proto +51 -51
- package/protos/webui/service_physicalgoods.proto +15 -15
- package/protos/webui/service_player.proto +885 -885
- package/protos/webui/service_promotioneventinvites.proto +50 -50
- package/protos/webui/service_promotionplanning.proto +72 -72
- package/protos/webui/service_publishedfile.proto +687 -687
- package/protos/webui/service_publishing.proto +119 -119
- package/protos/webui/service_quest.proto +127 -127
- package/protos/webui/service_salefeature.proto +315 -315
- package/protos/webui/service_saleitemrewards.proto +54 -54
- package/protos/webui/service_shoppingcart.proto +108 -108
- package/protos/webui/service_steamawards.proto +19 -19
- package/protos/webui/service_steamcharts.proto +75 -75
- package/protos/webui/service_steamengine.proto +36 -36
- package/protos/webui/service_steamlearn.proto +727 -727
- package/protos/webui/service_steamnotification.proto +84 -84
- package/protos/webui/service_steamtv.proto +495 -495
- package/protos/webui/service_steamvrvoicechat.proto +67 -67
- package/protos/webui/service_steamvrwebrtc.proto +48 -48
- package/protos/webui/service_storagedevicemanager.proto +104 -104
- package/protos/webui/service_store.proto +289 -289
- package/protos/webui/service_storeappsimilarity.proto +76 -76
- package/protos/webui/service_storebrowse.proto +73 -73
- package/protos/webui/service_storequery.proto +97 -97
- package/protos/webui/service_storesales.proto +15 -15
- package/protos/webui/service_storetopsellers.proto +44 -44
- package/protos/webui/service_systemmanager.proto +11 -11
- package/protos/webui/service_test_transporterror.proto +6 -6
- package/protos/webui/service_transportauth.proto +12 -12
- package/protos/webui/service_transportvalidation.proto +69 -69
- package/protos/webui/service_twofactor.proto +181 -181
- package/protos/webui/service_useraccount.proto +138 -138
- package/protos/webui/service_usergameactivity.proto +34 -34
- package/protos/webui/service_usergamenotes.proto +53 -53
- package/protos/webui/service_usernews.proto +68 -68
- package/protos/webui/service_userreviews.proto +96 -96
- package/protos/webui/service_video.proto +128 -128
- package/protos/webui/service_voicechat.proto +139 -139
- package/protos/webui/service_webrtc.proto +52 -52
- 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>
|
package/.idea/steamutils.iml
CHANGED
@@ -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
package/SteamClient.js
CHANGED
@@ -193,6 +193,19 @@ function SteamClient({
|
|
193
193
|
})
|
194
194
|
}
|
195
195
|
|
196
|
+
|
197
|
+
function offEvent(name) {
|
198
|
+
if (Array.isArray(events[name])) {
|
199
|
+
for (const eventElement of events[name]) {
|
200
|
+
if (eventElement.timeout) {
|
201
|
+
clearTimeout(eventElement.timeout)
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
delete events[name]
|
207
|
+
}
|
208
|
+
|
196
209
|
function onAnyEvent(callback) {
|
197
210
|
onAnyCallbacks.push(callback)
|
198
211
|
}
|
@@ -429,36 +442,37 @@ function SteamClient({
|
|
429
442
|
return
|
430
443
|
}
|
431
444
|
|
432
|
-
steamClient._send(
|
433
|
-
{
|
434
|
-
msg: Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby,
|
435
|
-
proto: {
|
436
|
-
steamid: steamClient.steamID.getSteamID64(),
|
437
|
-
routing_appid: 730
|
438
|
-
}
|
439
|
-
},
|
440
|
-
protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
|
441
|
-
app_id: 730,
|
442
|
-
max_members: 1,
|
443
|
-
lobby_type: 1,
|
444
|
-
lobby_flags: 1
|
445
|
-
})
|
446
|
-
);
|
447
|
-
|
448
445
|
return new Promise(resolve => {
|
449
446
|
const timeout = setTimeout(function () {
|
450
|
-
delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse];
|
451
447
|
resolve()
|
452
|
-
},
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
448
|
+
}, 30000)
|
449
|
+
|
450
|
+
steamClient._send(
|
451
|
+
{
|
452
|
+
msg: Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby,
|
453
|
+
proto: {
|
454
|
+
steamid: steamClient.steamID.getSteamID64(),
|
455
|
+
routing_appid: 730
|
456
|
+
}
|
457
|
+
},
|
458
|
+
protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
|
459
|
+
app_id: 730,
|
460
|
+
max_members: 1,
|
461
|
+
lobby_type: 1,
|
462
|
+
lobby_flags: 1
|
463
|
+
}), function (payload) {
|
464
|
+
clearTimeout(timeout)
|
465
|
+
const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
|
466
|
+
resolve(result.steam_id_lobby.toString())
|
467
|
+
}
|
468
|
+
);
|
460
469
|
})
|
461
470
|
|
471
|
+
// return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse, function (payload) {
|
472
|
+
// const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
|
473
|
+
// return result.steam_id_lobby.toString()
|
474
|
+
// })
|
475
|
+
|
462
476
|
// steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby, {
|
463
477
|
// steamid: steamClient.steamID,
|
464
478
|
// routing_appid: 730,
|
@@ -475,53 +489,54 @@ function SteamClient({
|
|
475
489
|
return
|
476
490
|
}
|
477
491
|
|
478
|
-
steamClient._send(
|
479
|
-
{
|
480
|
-
msg: Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyData,
|
481
|
-
proto: {
|
482
|
-
steamid: steamClient.steamID.getSteamID64(),
|
483
|
-
routing_appid: 730
|
484
|
-
}
|
485
|
-
},
|
486
|
-
protoEncode(Protos.csgo.CMsgClientMMSSetLobbyData, {
|
487
|
-
app_id: 730,
|
488
|
-
steam_id_lobby: lobbyID,
|
489
|
-
steam_id_member: '0',
|
490
|
-
max_members: 10,
|
491
|
-
lobby_type: 1,
|
492
|
-
lobby_flags: 1,
|
493
|
-
metadata: encode({
|
494
|
-
'game:ark': '0',
|
495
|
-
// Country/Message
|
496
|
-
'game:loc': '',
|
497
|
-
'game:mapgroupname': 'mg_de_mirage',
|
498
|
-
'game:mode': 'competitive',
|
499
|
-
'game:prime': '1',
|
500
|
-
'game:type': 'classic',
|
501
|
-
'members:numPlayers': '1',
|
502
|
-
'options:action': 'custommatch',
|
503
|
-
'options:anytypemode': '0',
|
504
|
-
'system:access': 'private',
|
505
|
-
'system:network': 'LIVE',
|
506
|
-
uids: [steamClient.steamID]
|
507
|
-
}, [0x00, 0x00], [0x08], {uids: encodeUids}).toBuffer()
|
508
|
-
})
|
509
|
-
);
|
510
|
-
|
511
492
|
return new Promise(resolve => {
|
512
493
|
const timeout = setTimeout(function () {
|
513
|
-
delete steamClient._handlerManager._handlers[Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse];
|
514
494
|
resolve()
|
515
|
-
},
|
516
|
-
|
517
|
-
steamClient.
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
495
|
+
}, 30000)
|
496
|
+
|
497
|
+
steamClient._send(
|
498
|
+
{
|
499
|
+
msg: Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyData,
|
500
|
+
proto: {
|
501
|
+
steamid: steamClient.steamID.getSteamID64(),
|
502
|
+
routing_appid: 730
|
503
|
+
}
|
504
|
+
},
|
505
|
+
protoEncode(Protos.csgo.CMsgClientMMSSetLobbyData, {
|
506
|
+
app_id: 730,
|
507
|
+
steam_id_lobby: lobbyID,
|
508
|
+
steam_id_member: '0',
|
509
|
+
max_members: 10,
|
510
|
+
lobby_type: 1,
|
511
|
+
lobby_flags: 1,
|
512
|
+
metadata: encode({
|
513
|
+
'game:ark': '0',
|
514
|
+
// Country/Message
|
515
|
+
'game:loc': '',
|
516
|
+
'game:mapgroupname': 'mg_de_mirage',
|
517
|
+
'game:mode': 'competitive',
|
518
|
+
'game:prime': '1',
|
519
|
+
'game:type': 'classic',
|
520
|
+
'members:numPlayers': '1',
|
521
|
+
'options:action': 'custommatch',
|
522
|
+
'options:anytypemode': '0',
|
523
|
+
'system:access': 'private',
|
524
|
+
'system:network': 'LIVE',
|
525
|
+
uids: [steamClient.steamID]
|
526
|
+
}, [0x00, 0x00], [0x08], {uids: encodeUids}).toBuffer()
|
527
|
+
}),
|
528
|
+
function (payload) {
|
529
|
+
clearTimeout(timeout)
|
530
|
+
const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
|
531
|
+
resolve(result.steam_id_lobby.toString())
|
532
|
+
}
|
533
|
+
);
|
524
534
|
})
|
535
|
+
|
536
|
+
// return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse, function (payload) {
|
537
|
+
// const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
|
538
|
+
// return result.steam_id_lobby.toString()
|
539
|
+
// })
|
525
540
|
}
|
526
541
|
|
527
542
|
async function invite2Lobby(lobbyID, steamId) {
|
@@ -541,11 +556,8 @@ function SteamClient({
|
|
541
556
|
app_id: 730,
|
542
557
|
steam_id_lobby: lobbyID,
|
543
558
|
steam_id_user_invited: steamId,
|
544
|
-
})
|
545
|
-
);
|
546
|
-
|
559
|
+
}));
|
547
560
|
|
548
|
-
const accountid = new SteamID(steamId).accountid;
|
549
561
|
// lobbyID = new SteamID(lobbyID).accountid;
|
550
562
|
|
551
563
|
// Protos.csgo.EMsg.k_EMsgGCHInviteUserToLobby
|
@@ -691,7 +703,7 @@ function SteamClient({
|
|
691
703
|
break
|
692
704
|
}
|
693
705
|
case Protos.csgo.ECsgoGCMsg.k_EMsgClientMMSJoinLobbyResponse: {
|
694
|
-
|
706
|
+
const msg = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload);
|
695
707
|
log(msg)
|
696
708
|
break
|
697
709
|
}
|
@@ -912,6 +924,9 @@ function SteamClient({
|
|
912
924
|
player_cur_xp: 327684501,
|
913
925
|
player_xp_bonus_flags: 0
|
914
926
|
}
|
927
|
+
if (result?.global_stats?.required_appid_version && result.global_stats.required_appid_version > CSGO_VER) {
|
928
|
+
CSGO_VER = result.global_stats.required_appid_version
|
929
|
+
}
|
915
930
|
callEvent(events.csgoClientHello, result)
|
916
931
|
break
|
917
932
|
}
|
@@ -1328,18 +1343,15 @@ function SteamClient({
|
|
1328
1343
|
}
|
1329
1344
|
const timestamp = new Date(data.server_timestamp).getTime()
|
1330
1345
|
const steamId = data.steamid_friend.getSteamID64()
|
1331
|
-
const personas = await getPersonas([steamId])
|
1332
|
-
const player_name = personas.find(p => p.id == steamId)?.player_name || ''
|
1333
1346
|
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)
|
1334
1347
|
const emotion = (data.message_no_bbcode || '').split(' ').find(m => m.startsWith(':') && m.endsWith(':'))
|
1335
1348
|
|
1336
1349
|
callEvent(events.friendMessage, {
|
1337
|
-
|
1350
|
+
...data,
|
1338
1351
|
message: data.message_no_bbcode,
|
1339
1352
|
invite,
|
1340
1353
|
steamId,
|
1341
1354
|
timestamp,
|
1342
|
-
from_limited_account: data.from_limited_account,
|
1343
1355
|
emotion,
|
1344
1356
|
})
|
1345
1357
|
},
|
@@ -1398,6 +1410,33 @@ function SteamClient({
|
|
1398
1410
|
}
|
1399
1411
|
}
|
1400
1412
|
|
1413
|
+
function getHandlerResult(msg, handler) {
|
1414
|
+
const timeout = {current: null}
|
1415
|
+
return new Promise(resolve => {
|
1416
|
+
|
1417
|
+
function myhandler(...args) {
|
1418
|
+
timeout.current && clearTimeout(timeout.current)
|
1419
|
+
removeHandler()
|
1420
|
+
resolve(handler?.(...args))
|
1421
|
+
}
|
1422
|
+
|
1423
|
+
function removeHandler() {
|
1424
|
+
if (Array.isArray(steamClient._handlerManager._handlers[msg])) {
|
1425
|
+
const index = steamClient._handlerManager._handlers[msg].findIndex(_handler => _handler === myhandler)
|
1426
|
+
if (index > -1) {
|
1427
|
+
steamClient._handlerManager._handlers[msg].splice(index, 1)
|
1428
|
+
}
|
1429
|
+
}
|
1430
|
+
}
|
1431
|
+
|
1432
|
+
timeout.current = setTimeout(function () {
|
1433
|
+
removeHandler()
|
1434
|
+
resolve()
|
1435
|
+
}, 60000)
|
1436
|
+
steamClient._handlerManager.add(msg, myhandler);
|
1437
|
+
})
|
1438
|
+
}
|
1439
|
+
|
1401
1440
|
function getFriendList() {
|
1402
1441
|
return Object.keys(steamClient.myFriends).filter(steamId => steamClient.myFriends[steamId] === SteamUser.EFriendRelationship.Friend)
|
1403
1442
|
}
|
@@ -1565,6 +1604,15 @@ function SteamClient({
|
|
1565
1604
|
function init() {
|
1566
1605
|
bindEvent()
|
1567
1606
|
login()
|
1607
|
+
|
1608
|
+
steamClient._handlerManager.add(5480, function (payload) {
|
1609
|
+
const result = protoDecode(Protos.csgo.CMsgClientRequestedClientStats, payload.toBuffer())
|
1610
|
+
console.log("CMsgClientRequestedClientStats", result);
|
1611
|
+
})
|
1612
|
+
steamClient._handlerManager.add(6612, function (payload) {
|
1613
|
+
const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer())
|
1614
|
+
console.log("CMsgClientMMSLobbyData", result);
|
1615
|
+
})
|
1568
1616
|
}
|
1569
1617
|
|
1570
1618
|
|
@@ -1904,6 +1952,7 @@ function SteamClient({
|
|
1904
1952
|
return steamClient?._logOnDetails
|
1905
1953
|
},
|
1906
1954
|
onEvent,
|
1955
|
+
offEvent,
|
1907
1956
|
offAllEvent,
|
1908
1957
|
setPersona(state, name) {
|
1909
1958
|
steamClient.setPersona(state, name)
|
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
|
+
};
|