steamutils 1.3.33 → 1.3.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/deployment.xml +21 -0
- package/.idea/steamutils.iml +1 -1
- package/.idea/vcs.xml +1 -1
- package/SteamClient.js +70 -10
- package/bufferHelpers.js +115 -115
- package/free_packages.json +10048 -10048
- package/index.js +29 -5
- package/package.json +2 -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
|
@@ -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
|
-
|
|
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
|
-
|
|
1362
|
+
setTimeout(function () {
|
|
1363
|
+
state = getPlayingAppIds().length ? 'InGame' : (isInvisible ? "Invisible" : 'Online')
|
|
1364
|
+
}, 1000)
|
|
1317
1365
|
},
|
|
1318
1366
|
async appQuit() {
|
|
1319
|
-
|
|
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(
|
|
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(
|
|
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/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
|
+
};
|