steamutils 1.4.34 → 1.4.36
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/SteamClient.js +192 -192
- package/_steamproto.js +29 -0
- package/create_proto.js +47 -0
- package/helpers/protos.js +52 -54
- package/package.json +1 -1
- package/steamproto.js +6159 -0
package/SteamClient.js
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
import NodeSteamUser from "steam-user";
|
|
2
2
|
import _ from "lodash";
|
|
3
|
-
import fs from "fs";
|
|
4
|
-
import { protoDecode, protoEncode } from "./helpers/util.js";
|
|
5
3
|
import SteamID from "steamid";
|
|
6
4
|
import FriendCode from "csgo-friendcode";
|
|
7
5
|
import axios from "axios";
|
|
8
|
-
import helpers, { loadProfos } from "./helpers/protos.js";
|
|
9
|
-
import { fileURLToPath } from "url";
|
|
10
|
-
import path from "path";
|
|
11
6
|
import SteamUser from "./index.js";
|
|
12
7
|
import { v4 as uuidv4 } from "uuid";
|
|
13
8
|
import EFriendRelationship from "steam-user/enums/EFriendRelationship.js";
|
|
14
9
|
import SteamCommunity from "steamcommunity";
|
|
15
10
|
import moment from "moment-timezone";
|
|
16
11
|
import { encode, encodeUids } from "./bufferHelpers.js";
|
|
17
|
-
|
|
18
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
19
|
-
|
|
20
|
-
const Protos = helpers([
|
|
21
|
-
{
|
|
22
|
-
name: "csgo",
|
|
23
|
-
protos: loadProfos(`${__dirname}/protos/`),
|
|
24
|
-
},
|
|
25
|
-
]);
|
|
12
|
+
import { ESteamProto, SteamProto, SteamProtoType } from "./steamproto.js";
|
|
26
13
|
|
|
27
14
|
export const RANKS = {
|
|
28
15
|
0: "Unranked",
|
|
@@ -76,12 +63,34 @@ export const LOCS = {
|
|
|
76
63
|
|
|
77
64
|
const AppID = 730;
|
|
78
65
|
export let CSGO_VER = 13960;
|
|
79
|
-
export const FreeAppList = JSON.parse(fs.readFileSync(path.join(__dirname, "free_packages.json"))).packages;
|
|
80
66
|
|
|
81
67
|
SteamUser.getAppVersion(AppID).then(function (ver) {
|
|
82
68
|
CSGO_VER = ver;
|
|
83
69
|
});
|
|
84
70
|
|
|
71
|
+
export const SteamClientEvents = {
|
|
72
|
+
user: "user",
|
|
73
|
+
loggedOn: "loggedOn",
|
|
74
|
+
csgoOnline: "csgoOnline",
|
|
75
|
+
csgoClientHello: "csgoClientHello",
|
|
76
|
+
webSession: "webSession",
|
|
77
|
+
friendMessage: "friendMessage",
|
|
78
|
+
friendTyping: "friendTyping",
|
|
79
|
+
disconnected: "disconnected",
|
|
80
|
+
error: "error",
|
|
81
|
+
playersProfile: "playersProfile",
|
|
82
|
+
fatalError: "fatalError",
|
|
83
|
+
partyInvite: "partyInvite",
|
|
84
|
+
friendRelationship: "friendRelationship",
|
|
85
|
+
tradeOffers: "tradeOffers",
|
|
86
|
+
offlineMessages: "offlineMessages",
|
|
87
|
+
friendsList: "friendsList",
|
|
88
|
+
gifts: "gifts",
|
|
89
|
+
playingState: "playingState",
|
|
90
|
+
emailInfo: "emailInfo",
|
|
91
|
+
accountLimitations: "accountLimitations",
|
|
92
|
+
wallet: "wallet",
|
|
93
|
+
};
|
|
85
94
|
const PersonasCache = [];
|
|
86
95
|
let isSendingFriendMessages = false;
|
|
87
96
|
|
|
@@ -92,7 +101,6 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
92
101
|
let isLogOff = false;
|
|
93
102
|
let playingBlocked = null;
|
|
94
103
|
const richPresence = {};
|
|
95
|
-
let sendMessageTimestamp = 0;
|
|
96
104
|
let lastTimePartyRegister = 0;
|
|
97
105
|
let lastTimePartySearch = 0;
|
|
98
106
|
const ownedApps = [];
|
|
@@ -108,29 +116,10 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
108
116
|
|
|
109
117
|
const onAnyCallbacks = [];
|
|
110
118
|
|
|
111
|
-
const events = {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
csgoClientHello: [],
|
|
116
|
-
webSession: [],
|
|
117
|
-
friendMessage: [],
|
|
118
|
-
friendTyping: [],
|
|
119
|
-
disconnected: [],
|
|
120
|
-
error: [],
|
|
121
|
-
playersProfile: [],
|
|
122
|
-
fatalError: [],
|
|
123
|
-
partyInvite: [],
|
|
124
|
-
friendRelationship: [],
|
|
125
|
-
tradeOffers: [],
|
|
126
|
-
offlineMessages: [],
|
|
127
|
-
friendsList: [],
|
|
128
|
-
gifts: [],
|
|
129
|
-
playingState: [],
|
|
130
|
-
emailInfo: [],
|
|
131
|
-
accountLimitations: [],
|
|
132
|
-
wallet: [],
|
|
133
|
-
};
|
|
119
|
+
const events = { ...SteamClientEvents };
|
|
120
|
+
for (const name in SteamClientEvents) {
|
|
121
|
+
events[name] = [];
|
|
122
|
+
}
|
|
134
123
|
|
|
135
124
|
const gcCallback = {};
|
|
136
125
|
|
|
@@ -395,9 +384,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
395
384
|
const players = await new Promise((resolve) => {
|
|
396
385
|
steamClient.sendToGC(
|
|
397
386
|
AppID,
|
|
398
|
-
|
|
387
|
+
ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search,
|
|
399
388
|
{},
|
|
400
|
-
|
|
389
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Search).protoEncode({
|
|
401
390
|
ver: CSGO_VER,
|
|
402
391
|
apr: prime ? 1 : 0,
|
|
403
392
|
ark: parseInt(Object.keys(RANKS).find((k) => RANKS[k] === rank)) * 10,
|
|
@@ -406,7 +395,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
406
395
|
game_type: game_type === "Competitive" ? 8 : 10,
|
|
407
396
|
}),
|
|
408
397
|
);
|
|
409
|
-
lastTimePartySearch =
|
|
398
|
+
lastTimePartySearch = Date.now();
|
|
410
399
|
pushGCCallback("partySearch", resolve, timeout);
|
|
411
400
|
});
|
|
412
401
|
if (Array.isArray(players) && players.length) {
|
|
@@ -434,13 +423,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
434
423
|
|
|
435
424
|
steamClient._send(
|
|
436
425
|
{
|
|
437
|
-
msg:
|
|
426
|
+
msg: ESteamProto.EMsg.k_EMsgClientMMSCreateLobby,
|
|
438
427
|
proto: {
|
|
439
428
|
steamid: steamClient.steamID.getSteamID64(),
|
|
440
429
|
routing_appid: 730,
|
|
441
430
|
},
|
|
442
431
|
},
|
|
443
|
-
|
|
432
|
+
new SteamProto(SteamProtoType.CMsgClientMMSCreateLobby).protoEncode({
|
|
444
433
|
app_id: 730,
|
|
445
434
|
max_members: 1,
|
|
446
435
|
lobby_type: 1,
|
|
@@ -448,24 +437,24 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
448
437
|
}),
|
|
449
438
|
function (payload) {
|
|
450
439
|
clearTimeout(timeout);
|
|
451
|
-
const result =
|
|
440
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoEncode(payload.toBuffer());
|
|
452
441
|
const steam_id_lobby = result.steam_id_lobby.toString();
|
|
453
442
|
currentLobby.lobbyID = steam_id_lobby;
|
|
454
|
-
currentLobby.timestamp =
|
|
443
|
+
currentLobby.timestamp = Date.now();
|
|
455
444
|
resolve(steam_id_lobby);
|
|
456
445
|
},
|
|
457
446
|
);
|
|
458
447
|
});
|
|
459
448
|
|
|
460
|
-
// return await getHandlerResult(
|
|
461
|
-
// const result = protoDecode(
|
|
449
|
+
// return await getHandlerResult(ESteamProto.EMsg.k_EMsgClientMMSCreateLobbyResponse, function (payload) {
|
|
450
|
+
// const result = protoDecode(SteamProtoType.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
|
|
462
451
|
// return result.steam_id_lobby.toString()
|
|
463
452
|
// })
|
|
464
453
|
|
|
465
|
-
// steamClient.sendToGC(730,
|
|
454
|
+
// steamClient.sendToGC(730, ESteamProto.EMsg.k_EMsgClientMMSCreateLobby, {
|
|
466
455
|
// steamid: steamClient.steamID,
|
|
467
456
|
// routing_appid: 730,
|
|
468
|
-
// }, protoEncode(
|
|
457
|
+
// }, protoEncode(SteamProtoType.CMsgClientMMSCreateLobby, {
|
|
469
458
|
// app_id: 730,
|
|
470
459
|
// max_members: 1,
|
|
471
460
|
// lobby_type: 1,
|
|
@@ -485,13 +474,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
485
474
|
|
|
486
475
|
steamClient._send(
|
|
487
476
|
{
|
|
488
|
-
msg:
|
|
477
|
+
msg: ESteamProto.EMsg.k_EMsgClientMMSSetLobbyData,
|
|
489
478
|
proto: {
|
|
490
479
|
steamid: steamClient.steamID.getSteamID64(),
|
|
491
480
|
routing_appid: 730,
|
|
492
481
|
},
|
|
493
482
|
},
|
|
494
|
-
|
|
483
|
+
new SteamProto(SteamProtoType.CMsgClientMMSSetLobbyData).protoEncode({
|
|
495
484
|
app_id: 730,
|
|
496
485
|
steam_id_lobby: lobbyID,
|
|
497
486
|
steam_id_member: "0",
|
|
@@ -521,17 +510,17 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
521
510
|
}),
|
|
522
511
|
function (payload) {
|
|
523
512
|
clearTimeout(timeout);
|
|
524
|
-
const result =
|
|
513
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSSetLobbyDataResponse).protoDecode(payload.toBuffer());
|
|
525
514
|
const steam_id_lobby = result.steam_id_lobby.toString();
|
|
526
515
|
currentLobby.lobbyID = steam_id_lobby;
|
|
527
|
-
currentLobby.timestamp =
|
|
516
|
+
currentLobby.timestamp = Date.now();
|
|
528
517
|
resolve(steam_id_lobby);
|
|
529
518
|
},
|
|
530
519
|
);
|
|
531
520
|
});
|
|
532
521
|
|
|
533
|
-
// return await getHandlerResult(
|
|
534
|
-
// const result = protoDecode(
|
|
522
|
+
// return await getHandlerResult(ESteamProto.EMsg.k_EMsgClientMMSSetLobbyDataResponse, function (payload) {
|
|
523
|
+
// const result = protoDecode(SteamProtoType.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
|
|
535
524
|
// return result.steam_id_lobby.toString()
|
|
536
525
|
// })
|
|
537
526
|
}
|
|
@@ -543,13 +532,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
543
532
|
|
|
544
533
|
steamClient._send(
|
|
545
534
|
{
|
|
546
|
-
msg:
|
|
535
|
+
msg: ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby,
|
|
547
536
|
proto: {
|
|
548
537
|
steamid: steamClient.steamID.getSteamID64(),
|
|
549
538
|
routing_appid: 730,
|
|
550
539
|
},
|
|
551
540
|
},
|
|
552
|
-
|
|
541
|
+
new SteamProto(SteamProtoType.CMsgClientMMSInviteToLobby).protoEncode({
|
|
553
542
|
app_id: 730,
|
|
554
543
|
steam_id_lobby: lobbyID,
|
|
555
544
|
steam_id_user_invited: steamId,
|
|
@@ -558,9 +547,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
558
547
|
|
|
559
548
|
// lobbyID = new SteamID(lobbyID).accountid;
|
|
560
549
|
|
|
561
|
-
//
|
|
562
|
-
//
|
|
563
|
-
// steamClient.sendToGC(730,
|
|
550
|
+
// ESteamProto.EMsg.k_EMsgGCHInviteUserToLobby
|
|
551
|
+
// ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby
|
|
552
|
+
// steamClient.sendToGC(730, ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby, {}, protoEncode(SteamProtoType.CMsgClientMMSInviteToLobby, {
|
|
564
553
|
// app_id: 730,
|
|
565
554
|
// steam_id_lobby: lobbyID,
|
|
566
555
|
// steam_id_user_invited: accountid,
|
|
@@ -579,7 +568,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
579
568
|
}
|
|
580
569
|
|
|
581
570
|
let lobbyID = null;
|
|
582
|
-
if (currentLobby.lobbyID && currentLobby.timestamp >
|
|
571
|
+
if (currentLobby.lobbyID && currentLobby.timestamp > Date.now() - 30000) {
|
|
583
572
|
//30 seconds
|
|
584
573
|
lobbyID = currentLobby.lobbyID;
|
|
585
574
|
} else {
|
|
@@ -607,19 +596,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
607
596
|
|
|
608
597
|
steamClient._send(
|
|
609
598
|
{
|
|
610
|
-
msg:
|
|
599
|
+
msg: ESteamProto.EMsg.k_EMsgClientMMSGetLobbyData,
|
|
611
600
|
proto: {
|
|
612
601
|
steamid: steamClient.steamID.getSteamID64(),
|
|
613
602
|
routing_appid: 730,
|
|
614
603
|
},
|
|
615
604
|
},
|
|
616
|
-
|
|
605
|
+
new SteamProto(SteamProtoType.CMsgClientMMSGetLobbyData).protoEncode({
|
|
617
606
|
app_id: 730,
|
|
618
607
|
steam_id_lobby: lobbyID.toString(),
|
|
619
608
|
}),
|
|
620
609
|
function (payload) {
|
|
621
610
|
clearTimeout(timeout);
|
|
622
|
-
const result =
|
|
611
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSLobbyData).protoDecode(payload.toBuffer());
|
|
623
612
|
result.steam_id_lobby = result.steam_id_lobby.toString();
|
|
624
613
|
resolve(result);
|
|
625
614
|
},
|
|
@@ -632,19 +621,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
632
621
|
|
|
633
622
|
steamClient._send(
|
|
634
623
|
{
|
|
635
|
-
msg:
|
|
624
|
+
msg: ESteamProto.EMsg.k_EMsgClientMMSJoinLobby,
|
|
636
625
|
proto: {
|
|
637
626
|
steamid: steamClient.steamID.getSteamID64(),
|
|
638
627
|
routing_appid: 730,
|
|
639
628
|
},
|
|
640
629
|
}, //CMsgClientMMSUserJoinedLobby CMsgClientMMSJoinLobby
|
|
641
|
-
|
|
630
|
+
new SteamProto(SteamProtoType.CMsgClientMMSJoinLobby).protoEncode({
|
|
642
631
|
app_id: 730,
|
|
643
632
|
steam_id_lobby: lobbyID,
|
|
644
633
|
persona_name: steamClient.accountInfo.name,
|
|
645
634
|
}),
|
|
646
635
|
function (payload) {
|
|
647
|
-
const result =
|
|
636
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSJoinLobbyResponse).protoDecode(payload.toBuffer());
|
|
648
637
|
result.steam_id_lobby = result.steam_id_lobby.toString();
|
|
649
638
|
result.steam_id_owner = result.steam_id_owner.toString();
|
|
650
639
|
console.log(result);
|
|
@@ -664,14 +653,14 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
664
653
|
}
|
|
665
654
|
|
|
666
655
|
async function sendHello() {
|
|
667
|
-
steamClient.sendToGC(AppID,
|
|
668
|
-
// steamClient.sendToGC(AppID,
|
|
656
|
+
steamClient.sendToGC(AppID, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello, {}, Buffer.alloc(0));
|
|
657
|
+
// steamClient.sendToGC(AppID, ESteamProto.EGCBaseClientMsg.k_EMsgGCClientHello, {}, Buffer.alloc(0));
|
|
669
658
|
|
|
670
659
|
steamClient.sendToGC(
|
|
671
660
|
AppID,
|
|
672
|
-
|
|
661
|
+
ESteamProto.EGCBaseClientMsg.k_EMsgGCClientHello,
|
|
673
662
|
{},
|
|
674
|
-
|
|
663
|
+
new SteamProto(SteamProtoType.CMsgClientHello).protoEncode({
|
|
675
664
|
version: 2000258, //get from https://github.com/SteamDatabase/GameTracking-CS2/commits
|
|
676
665
|
client_session_need: 0,
|
|
677
666
|
client_launcher: 0,
|
|
@@ -682,7 +671,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
682
671
|
|
|
683
672
|
async function requestCoPlays() {
|
|
684
673
|
return new Promise((resolve) => {
|
|
685
|
-
steamClient.sendToGC(AppID,
|
|
674
|
+
steamClient.sendToGC(AppID, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays, {}, Buffer.alloc(0));
|
|
686
675
|
pushGCCallback("RequestCoPlays", resolve, 30000);
|
|
687
676
|
});
|
|
688
677
|
}
|
|
@@ -707,7 +696,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
707
696
|
const isSuccess = await login(true);
|
|
708
697
|
if (isSuccess) {
|
|
709
698
|
const loggedOnResponse = await new Promise((resolve) => {
|
|
710
|
-
onEvent(
|
|
699
|
+
onEvent(SteamClientEvents.loggedOn, resolve, true, 180000);
|
|
711
700
|
});
|
|
712
701
|
if (loggedOnResponse) {
|
|
713
702
|
console.log("Relogin success");
|
|
@@ -789,17 +778,17 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
789
778
|
async receivedFromGC(appid, msgType, payload) {
|
|
790
779
|
const key = getECsgoGCMsgKey(msgType);
|
|
791
780
|
switch (msgType) {
|
|
792
|
-
case
|
|
781
|
+
case ESteamProto.EMsg.k_EMsgClientChatInvite: {
|
|
793
782
|
log(payload);
|
|
794
783
|
break;
|
|
795
784
|
}
|
|
796
|
-
case
|
|
797
|
-
const msg =
|
|
785
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgClientMMSJoinLobbyResponse: {
|
|
786
|
+
const msg = new SteamProto(SteamProtoType.CMsgClientMMSJoinLobbyResponse).protoDecode(payload);
|
|
798
787
|
log(msg);
|
|
799
788
|
break;
|
|
800
789
|
}
|
|
801
|
-
case
|
|
802
|
-
const msg =
|
|
790
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Invite: {
|
|
791
|
+
const msg = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Invite).protoDecode(payload);
|
|
803
792
|
const sid64 = SteamID.fromIndividualAccountID(msg.accountid).getSteamID64();
|
|
804
793
|
if (events.partyInvite?.length) {
|
|
805
794
|
const personas = await getPersonas([sid64]);
|
|
@@ -813,22 +802,22 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
813
802
|
// joinLobby(msg.lobbyid, msg.accountid)
|
|
814
803
|
break;
|
|
815
804
|
}
|
|
816
|
-
case
|
|
817
|
-
const msg =
|
|
805
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays: {
|
|
806
|
+
const msg = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Account_RequestCoPlays).protoDecode(payload);
|
|
818
807
|
const personas = msg.players.map((p) => SteamID.fromIndividualAccountID(p.accountid));
|
|
819
808
|
callGCCallback("RequestCoPlays", personas);
|
|
820
809
|
break;
|
|
821
810
|
}
|
|
822
|
-
case
|
|
811
|
+
case ESteamProto.EGCBaseClientMsg.k_EMsgGCClientWelcome: {
|
|
823
812
|
prime = false;
|
|
824
|
-
const CMsgClientWelcome =
|
|
813
|
+
const CMsgClientWelcome = new SteamProto(SteamProtoType.CMsgClientWelcome).protoDecode(payload);
|
|
825
814
|
const obj = {};
|
|
826
815
|
for (const outofdate_cache of CMsgClientWelcome.outofdate_subscribed_caches) {
|
|
827
816
|
for (const cache_object of outofdate_cache.objects) {
|
|
828
817
|
for (const object_data of cache_object.object_data) {
|
|
829
818
|
switch (cache_object.type_id) {
|
|
830
819
|
case 1: {
|
|
831
|
-
const result =
|
|
820
|
+
const result = new SteamProto(SteamProtoType.CSOEconItem).protoDecode(object_data);
|
|
832
821
|
result.id = result.id.toNumber();
|
|
833
822
|
result.original_id = result.original_id.toNumber();
|
|
834
823
|
if (!obj.items) {
|
|
@@ -838,7 +827,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
838
827
|
break;
|
|
839
828
|
}
|
|
840
829
|
case 2: {
|
|
841
|
-
const result =
|
|
830
|
+
const result = new SteamProto(SteamProtoType.CSOPersonaDataPublic).protoDecode(object_data);
|
|
842
831
|
obj.PersonaDataPublic = result;
|
|
843
832
|
const example = {
|
|
844
833
|
player_level: 4, //CSGO_Profile_Rank
|
|
@@ -852,11 +841,11 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
852
841
|
break;
|
|
853
842
|
}
|
|
854
843
|
case 5: {
|
|
855
|
-
const result =
|
|
844
|
+
const result = new SteamProto(SteamProtoType.CSOItemRecipe).protoDecode(object_data);
|
|
856
845
|
break;
|
|
857
846
|
}
|
|
858
847
|
case 7: {
|
|
859
|
-
const CSOEconGameAccountClient =
|
|
848
|
+
const CSOEconGameAccountClient = new SteamProto(SteamProtoType.CSOEconGameAccountClient).protoDecode(object_data);
|
|
860
849
|
const CSOEconGameAccountClientExample = {
|
|
861
850
|
additional_backpack_slots: 0,
|
|
862
851
|
bonus_xp_timestamp_refresh: 1688518800, //Wednesday 1:00:00 AM every week
|
|
@@ -881,36 +870,36 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
881
870
|
}
|
|
882
871
|
|
|
883
872
|
case 35: {
|
|
884
|
-
// const result =protoDecode(
|
|
873
|
+
// const result =protoDecode(SteamProtoType.CSOSelectedItemPreset, object_data);
|
|
885
874
|
break;
|
|
886
875
|
}
|
|
887
876
|
|
|
888
877
|
case 36: {
|
|
889
|
-
// const result =protoDecode(
|
|
878
|
+
// const result =protoDecode(SteamProtoType.CSOEconItemPresetInstance, object_data);
|
|
890
879
|
break;
|
|
891
880
|
}
|
|
892
881
|
case 38: {
|
|
893
|
-
const result =
|
|
882
|
+
const result = new SteamProto(SteamProtoType.CSOEconItemDropRateBonus).protoDecode(object_data);
|
|
894
883
|
break;
|
|
895
884
|
}
|
|
896
885
|
case 39: {
|
|
897
|
-
const result =
|
|
886
|
+
const result = new SteamProto(SteamProtoType.CSOEconItemLeagueViewPass).protoDecode(object_data);
|
|
898
887
|
break;
|
|
899
888
|
}
|
|
900
889
|
case 40: {
|
|
901
|
-
const result =
|
|
890
|
+
const result = new SteamProto(SteamProtoType.CSOEconItemEventTicket).protoDecode(object_data);
|
|
902
891
|
break;
|
|
903
892
|
}
|
|
904
893
|
case 41: {
|
|
905
|
-
const result =
|
|
894
|
+
const result = new SteamProto(SteamProtoType.CSOAccountSeasonalOperation).protoDecode(object_data);
|
|
906
895
|
break;
|
|
907
896
|
}
|
|
908
897
|
case 42: {
|
|
909
|
-
// const result =protoDecode(
|
|
898
|
+
// const result =protoDecode(SteamProtoType.CSOEconItemTournamentPassport, object_data);
|
|
910
899
|
break;
|
|
911
900
|
}
|
|
912
901
|
case 43: {
|
|
913
|
-
const result =
|
|
902
|
+
const result = new SteamProto(SteamProtoType.CSOEconDefaultEquippedDefinitionInstanceClient).protoDecode(object_data);
|
|
914
903
|
const example = {
|
|
915
904
|
account_id: 1080136620,
|
|
916
905
|
item_definition: 61,
|
|
@@ -920,15 +909,15 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
920
909
|
break;
|
|
921
910
|
}
|
|
922
911
|
case 45: {
|
|
923
|
-
const result =
|
|
912
|
+
const result = new SteamProto(SteamProtoType.CSOEconCoupon).protoDecode(object_data);
|
|
924
913
|
break;
|
|
925
914
|
}
|
|
926
915
|
case 46: {
|
|
927
|
-
const result =
|
|
916
|
+
const result = new SteamProto(SteamProtoType.CSOQuestProgress).protoDecode(object_data);
|
|
928
917
|
break;
|
|
929
918
|
}
|
|
930
919
|
case 4: {
|
|
931
|
-
const result =
|
|
920
|
+
const result = new SteamProto(SteamProtoType.CSOAccountItemPersonalStore).protoDecode(object_data);
|
|
932
921
|
result.generation_time = result.generation_time * 1000;
|
|
933
922
|
if (Array.isArray(result.items)) {
|
|
934
923
|
result.items = result.items.map((item) => item.toNumber());
|
|
@@ -964,24 +953,24 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
964
953
|
}
|
|
965
954
|
break;
|
|
966
955
|
}
|
|
967
|
-
case
|
|
968
|
-
const result =
|
|
956
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate: {
|
|
957
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate).protoDecode(payload);
|
|
969
958
|
break;
|
|
970
959
|
}
|
|
971
|
-
case
|
|
972
|
-
const result =
|
|
960
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientGlobalStats: {
|
|
961
|
+
const result = new SteamProto(SteamProtoType.CMsgClientUGSGetGlobalStatsResponse).protoDecode(payload);
|
|
973
962
|
break;
|
|
974
963
|
}
|
|
975
|
-
case
|
|
976
|
-
const result =
|
|
964
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportPlayer: {
|
|
965
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientReportPlayer).protoDecode(payload);
|
|
977
966
|
break;
|
|
978
967
|
}
|
|
979
|
-
case
|
|
980
|
-
const result =
|
|
968
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientTextMsg: {
|
|
969
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_GC2ClientTextMsg).protoDecode(payload);
|
|
981
970
|
break;
|
|
982
971
|
}
|
|
983
|
-
case
|
|
984
|
-
const result =
|
|
972
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello: {
|
|
973
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello).protoDecode(payload);
|
|
985
974
|
const example = {
|
|
986
975
|
my_current_event_teams: [],
|
|
987
976
|
my_current_event_stages: [],
|
|
@@ -1048,64 +1037,64 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1048
1037
|
callEvent(events.csgoClientHello, result);
|
|
1049
1038
|
break;
|
|
1050
1039
|
}
|
|
1051
|
-
case
|
|
1052
|
-
const result =
|
|
1040
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportResponse: {
|
|
1041
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientReportResponse).protoDecode(payload);
|
|
1053
1042
|
break;
|
|
1054
1043
|
}
|
|
1055
|
-
case
|
|
1056
|
-
const result =
|
|
1044
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse: {
|
|
1045
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientCommendPlayer).protoDecode(payload);
|
|
1057
1046
|
break;
|
|
1058
1047
|
}
|
|
1059
|
-
case
|
|
1060
|
-
const result =
|
|
1048
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment: {
|
|
1049
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment).protoDecode(payload);
|
|
1061
1050
|
break;
|
|
1062
1051
|
}
|
|
1063
|
-
case
|
|
1064
|
-
const result =
|
|
1052
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchList: {
|
|
1053
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchList).protoDecode(payload);
|
|
1065
1054
|
break;
|
|
1066
1055
|
}
|
|
1067
|
-
case
|
|
1068
|
-
const result =
|
|
1056
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GetEventFavorites_Response: {
|
|
1057
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_GetEventFavorites_Response).protoDecode(payload);
|
|
1069
1058
|
break;
|
|
1070
1059
|
}
|
|
1071
|
-
case
|
|
1060
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_StartAgreementSessionInGame: {
|
|
1072
1061
|
break;
|
|
1073
1062
|
}
|
|
1074
|
-
case
|
|
1075
|
-
const result =
|
|
1063
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_ClientDeepStats: {
|
|
1064
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_ClientDeepStats).protoDecode(payload);
|
|
1076
1065
|
break;
|
|
1077
1066
|
}
|
|
1078
|
-
case
|
|
1079
|
-
const result =
|
|
1067
|
+
case ESteamProto.EGCBaseClientMsg.k_EMsgGCClientConnectionStatus: {
|
|
1068
|
+
const result = new SteamProto(SteamProtoType.CMsgConnectionStatus).protoDecode(payload);
|
|
1080
1069
|
break;
|
|
1081
1070
|
}
|
|
1082
|
-
case
|
|
1083
|
-
const result =
|
|
1071
|
+
case ESteamProto.EGCItemMsg.k_EMsgGCStoreGetUserDataResponse: {
|
|
1072
|
+
const result = new SteamProto(SteamProtoType.CMsgStoreGetUserDataResponse).protoDecode(payload);
|
|
1084
1073
|
break;
|
|
1085
1074
|
}
|
|
1086
|
-
case
|
|
1087
|
-
const result =
|
|
1075
|
+
case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseFinalizeResponse: {
|
|
1076
|
+
const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseFinalizeResponse).protoDecode(payload);
|
|
1088
1077
|
break;
|
|
1089
1078
|
}
|
|
1090
|
-
case
|
|
1091
|
-
const result =
|
|
1079
|
+
case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseCancelResponse: {
|
|
1080
|
+
const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseCancelResponse).protoDecode(payload);
|
|
1092
1081
|
break;
|
|
1093
1082
|
}
|
|
1094
|
-
case
|
|
1095
|
-
const result =
|
|
1083
|
+
case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseInitResponse: {
|
|
1084
|
+
const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseInitResponse).protoDecode(payload);
|
|
1096
1085
|
break;
|
|
1097
1086
|
}
|
|
1098
|
-
case
|
|
1099
|
-
const result =
|
|
1087
|
+
case ESteamProto.EMsg.k_EMsgClientMMSCreateLobbyResponse: {
|
|
1088
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoDecode(payload);
|
|
1100
1089
|
console.log("k_EMsgClientMMSCreateLobbyResponse", result);
|
|
1101
1090
|
break;
|
|
1102
1091
|
}
|
|
1103
|
-
case
|
|
1104
|
-
const result =
|
|
1092
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate: {
|
|
1093
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientGCRankUpdate).protoDecode(payload);
|
|
1105
1094
|
break;
|
|
1106
1095
|
}
|
|
1107
|
-
case
|
|
1108
|
-
const result =
|
|
1096
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search: {
|
|
1097
|
+
const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_SearchResults).protoDecode(payload);
|
|
1109
1098
|
const entries = _.uniqBy(result.entries, "id");
|
|
1110
1099
|
//{
|
|
1111
1100
|
// id: 144900402,
|
|
@@ -1177,8 +1166,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1177
1166
|
callGCCallback("partySearch", players);
|
|
1178
1167
|
break;
|
|
1179
1168
|
}
|
|
1180
|
-
case
|
|
1181
|
-
let data =
|
|
1169
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayersProfile: {
|
|
1170
|
+
let data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_PlayersProfile).protoDecode(payload)?.account_profiles;
|
|
1182
1171
|
const dataExample = [
|
|
1183
1172
|
{
|
|
1184
1173
|
my_current_event_teams: [],
|
|
@@ -1250,8 +1239,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1250
1239
|
callEvent(events.playersProfile, player);
|
|
1251
1240
|
break;
|
|
1252
1241
|
}
|
|
1253
|
-
case
|
|
1254
|
-
const data =
|
|
1242
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientLogonFatalError: {
|
|
1243
|
+
const data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientLogonFatalError).protoDecode(payload);
|
|
1255
1244
|
const dataExample = {
|
|
1256
1245
|
errorcode: 4,
|
|
1257
1246
|
message: "",
|
|
@@ -1260,8 +1249,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1260
1249
|
callEvent(events.fatalError, data);
|
|
1261
1250
|
break;
|
|
1262
1251
|
}
|
|
1263
|
-
case
|
|
1264
|
-
const data =
|
|
1252
|
+
case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData: {
|
|
1253
|
+
const data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestJoinFriendData).protoDecode(payload);
|
|
1265
1254
|
if (!data?.account_id) {
|
|
1266
1255
|
return;
|
|
1267
1256
|
}
|
|
@@ -1278,10 +1267,10 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1278
1267
|
}
|
|
1279
1268
|
default:
|
|
1280
1269
|
log(`receivedFromGC ${msgType} ${key}`);
|
|
1281
|
-
const results = Object.values(
|
|
1270
|
+
const results = Object.values(SteamProtoType)
|
|
1282
1271
|
.map(function (p) {
|
|
1283
1272
|
try {
|
|
1284
|
-
return protoDecode(
|
|
1273
|
+
return new SteamProto(p).protoDecode(payload);
|
|
1285
1274
|
} catch (e) {}
|
|
1286
1275
|
})
|
|
1287
1276
|
.filter(function (result) {
|
|
@@ -1536,23 +1525,23 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1536
1525
|
// });
|
|
1537
1526
|
|
|
1538
1527
|
function getECsgoGCMsgKey(_key) {
|
|
1539
|
-
for (let key in
|
|
1540
|
-
if (
|
|
1528
|
+
for (let key in ESteamProto.ECsgoGCMsg) {
|
|
1529
|
+
if (ESteamProto.ECsgoGCMsg[key] == _key) {
|
|
1541
1530
|
return key;
|
|
1542
1531
|
}
|
|
1543
1532
|
}
|
|
1544
|
-
for (let key in
|
|
1545
|
-
if (
|
|
1533
|
+
for (let key in ESteamProto.EGCBaseClientMsg) {
|
|
1534
|
+
if (ESteamProto.EGCBaseClientMsg[key] == _key) {
|
|
1546
1535
|
return key;
|
|
1547
1536
|
}
|
|
1548
1537
|
}
|
|
1549
|
-
for (let key in
|
|
1550
|
-
if (
|
|
1538
|
+
for (let key in ESteamProto.EMsg) {
|
|
1539
|
+
if (ESteamProto.EMsg[key] == _key) {
|
|
1551
1540
|
return key;
|
|
1552
1541
|
}
|
|
1553
1542
|
}
|
|
1554
|
-
for (let key in
|
|
1555
|
-
if (
|
|
1543
|
+
for (let key in ESteamProto.EGCItemMsg) {
|
|
1544
|
+
if (ESteamProto.EGCItemMsg[key] == _key) {
|
|
1556
1545
|
return key;
|
|
1557
1546
|
}
|
|
1558
1547
|
}
|
|
@@ -1608,9 +1597,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1608
1597
|
const accountid = new SteamID(steamId).accountid;
|
|
1609
1598
|
steamClient.sendToGC(
|
|
1610
1599
|
730,
|
|
1611
|
-
|
|
1600
|
+
ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile,
|
|
1612
1601
|
{},
|
|
1613
|
-
|
|
1602
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestPlayersProfile).protoEncode({
|
|
1614
1603
|
account_id: accountid, // account_id: new SteamID('76561199184696945').accountid,
|
|
1615
1604
|
request_level: 32,
|
|
1616
1605
|
}),
|
|
@@ -1796,12 +1785,12 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1796
1785
|
async function init() {
|
|
1797
1786
|
bindEvent();
|
|
1798
1787
|
if (await login()) {
|
|
1799
|
-
steamClient._handlerManager.add(
|
|
1800
|
-
const result =
|
|
1788
|
+
steamClient._handlerManager.add(ESteamProto.EMsg.k_EMsgClientRequestedClientStats, function (payload) {
|
|
1789
|
+
const result = new SteamProto(SteamProtoType.CMsgClientRequestedClientStats).protoDecode(payload.toBuffer());
|
|
1801
1790
|
// console.log("CMsgClientRequestedClientStats", result);
|
|
1802
1791
|
});
|
|
1803
|
-
steamClient._handlerManager.add(
|
|
1804
|
-
const result =
|
|
1792
|
+
steamClient._handlerManager.add(ESteamProto.EMsg.k_EMsgClientMMSLobbyData, function (payload) {
|
|
1793
|
+
const result = new SteamProto(SteamProtoType.CMsgClientMMSLobbyData).protoDecode(payload.toBuffer());
|
|
1805
1794
|
// console.log("CMsgClientMMSLobbyData", result, result.metadata);
|
|
1806
1795
|
});
|
|
1807
1796
|
}
|
|
@@ -1818,12 +1807,12 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1818
1807
|
|
|
1819
1808
|
function _partyRegister(prime) {
|
|
1820
1809
|
log("partyRegister", prime);
|
|
1821
|
-
lastTimePartyRegister =
|
|
1810
|
+
lastTimePartyRegister = Date.now();
|
|
1822
1811
|
steamClient.sendToGC(
|
|
1823
1812
|
730,
|
|
1824
|
-
|
|
1813
|
+
ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Register,
|
|
1825
1814
|
{},
|
|
1826
|
-
|
|
1815
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Register).protoEncode({
|
|
1827
1816
|
// id : 0,
|
|
1828
1817
|
ver: CSGO_VER,
|
|
1829
1818
|
apr: prime ? 1 : 0, //prime
|
|
@@ -1835,37 +1824,48 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
1835
1824
|
);
|
|
1836
1825
|
}
|
|
1837
1826
|
|
|
1838
|
-
|
|
1839
|
-
while (sendMessageTimestamp && new Date().getTime() - sendMessageTimestamp < 2000) {
|
|
1840
|
-
await sleep(1000);
|
|
1841
|
-
}
|
|
1827
|
+
const MessageQueue = [];
|
|
1842
1828
|
|
|
1843
|
-
|
|
1844
|
-
|
|
1829
|
+
async function _execMessageQueue() {
|
|
1830
|
+
if (isSendingFriendMessages) {
|
|
1831
|
+
return;
|
|
1845
1832
|
}
|
|
1833
|
+
while (MessageQueue.length) {
|
|
1834
|
+
isSendingFriendMessages = true;
|
|
1835
|
+
const item = MessageQueue.shift();
|
|
1836
|
+
const result = await _sendFriendMessage(item.steamId, item.message);
|
|
1837
|
+
item.callback(result);
|
|
1838
|
+
if (MessageQueue.length) {
|
|
1839
|
+
await sleep(1000);
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
isSendingFriendMessages = false;
|
|
1843
|
+
}
|
|
1846
1844
|
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
const result = await new Promise((resolve) => {
|
|
1845
|
+
async function _sendFriendMessage(steamId, message) {
|
|
1846
|
+
let result = null;
|
|
1847
|
+
for (let i = 0; i < 10; i++) {
|
|
1848
|
+
result = await new Promise((resolve) => {
|
|
1852
1849
|
steamClient.chat.sendFriendMessage(steamId, message, undefined, function (...arg) {
|
|
1853
|
-
sendMessageTimestamp = new Date().getTime();
|
|
1854
1850
|
resolve(arg);
|
|
1855
1851
|
});
|
|
1856
1852
|
});
|
|
1857
|
-
|
|
1858
1853
|
if (result?.[1]?.server_timestamp) {
|
|
1859
|
-
isSendingFriendMessages = false;
|
|
1860
1854
|
return result?.[1];
|
|
1861
1855
|
} else if (result?.[0]?.message?.includes?.("RateLimitExceeded")) {
|
|
1862
1856
|
await sleep(5000);
|
|
1863
1857
|
} else {
|
|
1864
|
-
isSendingFriendMessages = false;
|
|
1865
1858
|
return result;
|
|
1866
1859
|
}
|
|
1867
1860
|
}
|
|
1868
|
-
|
|
1861
|
+
return result;
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
async function sendFriendMessage(steamId, message) {
|
|
1865
|
+
return new Promise((resolve) => {
|
|
1866
|
+
MessageQueue.push({ steamId, message, callback: resolve });
|
|
1867
|
+
_execMessageQueue();
|
|
1868
|
+
});
|
|
1869
1869
|
}
|
|
1870
1870
|
|
|
1871
1871
|
async function autoRequestFreeLicense(shouldLog = false, max = 10) {
|
|
@@ -2176,9 +2176,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
2176
2176
|
pushGCCallback(`requestJoinFriendData_${accountID}`, resolve, 30000);
|
|
2177
2177
|
steamClient.sendToGC(
|
|
2178
2178
|
AppID,
|
|
2179
|
-
|
|
2179
|
+
ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData,
|
|
2180
2180
|
{},
|
|
2181
|
-
|
|
2181
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestJoinFriendData).protoEncode({
|
|
2182
2182
|
version: version || CSGO_VER,
|
|
2183
2183
|
account_id: accountID,
|
|
2184
2184
|
join_token: joinToken,
|
|
@@ -2189,21 +2189,21 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
2189
2189
|
}
|
|
2190
2190
|
|
|
2191
2191
|
function redeemFreeReward(itemIds, generation_time) {
|
|
2192
|
-
console.log(`Sent message to GC: AppID ${AppID}, MessageType ${
|
|
2192
|
+
console.log(`Sent message to GC: AppID ${AppID}, MessageType ${ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward}`);
|
|
2193
2193
|
|
|
2194
|
-
const encodedMessages =
|
|
2194
|
+
const encodedMessages = new SteamProto(SteamProtoType.CMsgGCCstrike15_v2_ClientRedeemFreeReward).protoEncode({
|
|
2195
2195
|
items: itemIds,
|
|
2196
2196
|
redeemable_balance: 0,
|
|
2197
2197
|
generation_time: generation_time,
|
|
2198
2198
|
});
|
|
2199
|
-
steamClient.sendToGC(730,
|
|
2199
|
+
steamClient.sendToGC(730, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward, {}, encodedMessages, function (payload) {
|
|
2200
2200
|
console.log(payload);
|
|
2201
2201
|
});
|
|
2202
2202
|
|
|
2203
2203
|
setTimeout(function () {
|
|
2204
2204
|
steamClient._send(
|
|
2205
2205
|
{
|
|
2206
|
-
msg:
|
|
2206
|
+
msg: ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
|
|
2207
2207
|
proto: {
|
|
2208
2208
|
steamid: steamClient.steamID.getSteamID64(),
|
|
2209
2209
|
routing_appid: 730,
|
|
@@ -2225,13 +2225,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
2225
2225
|
|
|
2226
2226
|
steamClient._send(
|
|
2227
2227
|
{
|
|
2228
|
-
msg:
|
|
2228
|
+
msg: ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate,
|
|
2229
2229
|
proto: {
|
|
2230
2230
|
steamid: steamClient.steamID.getSteamID64(),
|
|
2231
2231
|
routing_appid: 730,
|
|
2232
2232
|
},
|
|
2233
2233
|
},
|
|
2234
|
-
|
|
2234
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientGCRankUpdate).protoEncode({
|
|
2235
2235
|
rankings: [
|
|
2236
2236
|
{
|
|
2237
2237
|
rank_type_id: 7, //wing man
|
|
@@ -2255,9 +2255,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
|
|
|
2255
2255
|
function acknowledgePenalty() {
|
|
2256
2256
|
steamClient.sendToGC(
|
|
2257
2257
|
730,
|
|
2258
|
-
|
|
2258
|
+
ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_AcknowledgePenalty,
|
|
2259
2259
|
{},
|
|
2260
|
-
|
|
2260
|
+
new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_AcknowledgePenalty).protoEncode({
|
|
2261
2261
|
acknowledged: 1,
|
|
2262
2262
|
}),
|
|
2263
2263
|
);
|
|
@@ -2505,19 +2505,19 @@ SteamClient.isAccountPlayable = async function isAccountPlayable({ cookie, clien
|
|
|
2505
2505
|
...rest,
|
|
2506
2506
|
});
|
|
2507
2507
|
|
|
2508
|
-
steamClient.onEvent(
|
|
2508
|
+
steamClient.onEvent(SteamClientEvents.error, ({ eresult, msg, error }) => {
|
|
2509
2509
|
doResolve({ eresult, msg, error });
|
|
2510
2510
|
});
|
|
2511
2511
|
|
|
2512
|
-
steamClient.onEvent(
|
|
2512
|
+
steamClient.onEvent(SteamClientEvents.csgoOnline, (ClientWelcome) => {
|
|
2513
2513
|
doResolve({ playable: true });
|
|
2514
2514
|
});
|
|
2515
2515
|
|
|
2516
|
-
steamClient.onEvent(
|
|
2516
|
+
steamClient.onEvent(SteamClientEvents.csgoClientHello, (ClientHello) => {
|
|
2517
2517
|
doResolve({ playable: true });
|
|
2518
2518
|
});
|
|
2519
2519
|
|
|
2520
|
-
steamClient.onEvent(
|
|
2520
|
+
steamClient.onEvent(SteamClientEvents.playingState, ({ playing_blocked, playing_app }) => {
|
|
2521
2521
|
if (playing_blocked) {
|
|
2522
2522
|
doResolve({ playable: false });
|
|
2523
2523
|
} else {
|