steamutils 1.4.35 → 1.4.36

Sign up to get free protection for your applications and to get access to all the features.
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",
@@ -81,6 +68,29 @@ SteamUser.getAppVersion(AppID).then(function (ver) {
81
68
  CSGO_VER = ver;
82
69
  });
83
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
+ };
84
94
  const PersonasCache = [];
85
95
  let isSendingFriendMessages = false;
86
96
 
@@ -106,29 +116,10 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
106
116
 
107
117
  const onAnyCallbacks = [];
108
118
 
109
- const events = {
110
- user: [],
111
- loggedOn: [],
112
- csgoOnline: [],
113
- csgoClientHello: [],
114
- webSession: [],
115
- friendMessage: [],
116
- friendTyping: [],
117
- disconnected: [],
118
- error: [],
119
- playersProfile: [],
120
- fatalError: [],
121
- partyInvite: [],
122
- friendRelationship: [],
123
- tradeOffers: [],
124
- offlineMessages: [],
125
- friendsList: [],
126
- gifts: [],
127
- playingState: [],
128
- emailInfo: [],
129
- accountLimitations: [],
130
- wallet: [],
131
- };
119
+ const events = { ...SteamClientEvents };
120
+ for (const name in SteamClientEvents) {
121
+ events[name] = [];
122
+ }
132
123
 
133
124
  const gcCallback = {};
134
125
 
@@ -393,9 +384,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
393
384
  const players = await new Promise((resolve) => {
394
385
  steamClient.sendToGC(
395
386
  AppID,
396
- Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search,
387
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search,
397
388
  {},
398
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_Party_Search, {
389
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Search).protoEncode({
399
390
  ver: CSGO_VER,
400
391
  apr: prime ? 1 : 0,
401
392
  ark: parseInt(Object.keys(RANKS).find((k) => RANKS[k] === rank)) * 10,
@@ -432,13 +423,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
432
423
 
433
424
  steamClient._send(
434
425
  {
435
- msg: Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby,
426
+ msg: ESteamProto.EMsg.k_EMsgClientMMSCreateLobby,
436
427
  proto: {
437
428
  steamid: steamClient.steamID.getSteamID64(),
438
429
  routing_appid: 730,
439
430
  },
440
431
  },
441
- protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
432
+ new SteamProto(SteamProtoType.CMsgClientMMSCreateLobby).protoEncode({
442
433
  app_id: 730,
443
434
  max_members: 1,
444
435
  lobby_type: 1,
@@ -446,7 +437,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
446
437
  }),
447
438
  function (payload) {
448
439
  clearTimeout(timeout);
449
- const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer());
440
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoEncode(payload.toBuffer());
450
441
  const steam_id_lobby = result.steam_id_lobby.toString();
451
442
  currentLobby.lobbyID = steam_id_lobby;
452
443
  currentLobby.timestamp = Date.now();
@@ -455,15 +446,15 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
455
446
  );
456
447
  });
457
448
 
458
- // return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse, function (payload) {
459
- // const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
449
+ // return await getHandlerResult(ESteamProto.EMsg.k_EMsgClientMMSCreateLobbyResponse, function (payload) {
450
+ // const result = protoDecode(SteamProtoType.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
460
451
  // return result.steam_id_lobby.toString()
461
452
  // })
462
453
 
463
- // steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSCreateLobby, {
454
+ // steamClient.sendToGC(730, ESteamProto.EMsg.k_EMsgClientMMSCreateLobby, {
464
455
  // steamid: steamClient.steamID,
465
456
  // routing_appid: 730,
466
- // }, protoEncode(Protos.csgo.CMsgClientMMSCreateLobby, {
457
+ // }, protoEncode(SteamProtoType.CMsgClientMMSCreateLobby, {
467
458
  // app_id: 730,
468
459
  // max_members: 1,
469
460
  // lobby_type: 1,
@@ -483,13 +474,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
483
474
 
484
475
  steamClient._send(
485
476
  {
486
- msg: Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyData,
477
+ msg: ESteamProto.EMsg.k_EMsgClientMMSSetLobbyData,
487
478
  proto: {
488
479
  steamid: steamClient.steamID.getSteamID64(),
489
480
  routing_appid: 730,
490
481
  },
491
482
  },
492
- protoEncode(Protos.csgo.CMsgClientMMSSetLobbyData, {
483
+ new SteamProto(SteamProtoType.CMsgClientMMSSetLobbyData).protoEncode({
493
484
  app_id: 730,
494
485
  steam_id_lobby: lobbyID,
495
486
  steam_id_member: "0",
@@ -519,7 +510,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
519
510
  }),
520
511
  function (payload) {
521
512
  clearTimeout(timeout);
522
- const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer());
513
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSSetLobbyDataResponse).protoDecode(payload.toBuffer());
523
514
  const steam_id_lobby = result.steam_id_lobby.toString();
524
515
  currentLobby.lobbyID = steam_id_lobby;
525
516
  currentLobby.timestamp = Date.now();
@@ -528,8 +519,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
528
519
  );
529
520
  });
530
521
 
531
- // return await getHandlerResult(Protos.csgo.EMsg.k_EMsgClientMMSSetLobbyDataResponse, function (payload) {
532
- // const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
522
+ // return await getHandlerResult(ESteamProto.EMsg.k_EMsgClientMMSSetLobbyDataResponse, function (payload) {
523
+ // const result = protoDecode(SteamProtoType.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
533
524
  // return result.steam_id_lobby.toString()
534
525
  // })
535
526
  }
@@ -541,13 +532,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
541
532
 
542
533
  steamClient._send(
543
534
  {
544
- msg: Protos.csgo.EMsg.k_EMsgClientMMSInviteToLobby,
535
+ msg: ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby,
545
536
  proto: {
546
537
  steamid: steamClient.steamID.getSteamID64(),
547
538
  routing_appid: 730,
548
539
  },
549
540
  },
550
- protoEncode(Protos.csgo.CMsgClientMMSInviteToLobby, {
541
+ new SteamProto(SteamProtoType.CMsgClientMMSInviteToLobby).protoEncode({
551
542
  app_id: 730,
552
543
  steam_id_lobby: lobbyID,
553
544
  steam_id_user_invited: steamId,
@@ -556,9 +547,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
556
547
 
557
548
  // lobbyID = new SteamID(lobbyID).accountid;
558
549
 
559
- // Protos.csgo.EMsg.k_EMsgGCHInviteUserToLobby
560
- // Protos.csgo.EMsg.k_EMsgClientMMSInviteToLobby
561
- // steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSInviteToLobby, {}, protoEncode(Protos.csgo.CMsgClientMMSInviteToLobby, {
550
+ // ESteamProto.EMsg.k_EMsgGCHInviteUserToLobby
551
+ // ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby
552
+ // steamClient.sendToGC(730, ESteamProto.EMsg.k_EMsgClientMMSInviteToLobby, {}, protoEncode(SteamProtoType.CMsgClientMMSInviteToLobby, {
562
553
  // app_id: 730,
563
554
  // steam_id_lobby: lobbyID,
564
555
  // steam_id_user_invited: accountid,
@@ -605,19 +596,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
605
596
 
606
597
  steamClient._send(
607
598
  {
608
- msg: Protos.csgo.EMsg.k_EMsgClientMMSGetLobbyData,
599
+ msg: ESteamProto.EMsg.k_EMsgClientMMSGetLobbyData,
609
600
  proto: {
610
601
  steamid: steamClient.steamID.getSteamID64(),
611
602
  routing_appid: 730,
612
603
  },
613
604
  },
614
- protoEncode(Protos.csgo.CMsgClientMMSGetLobbyData, {
605
+ new SteamProto(SteamProtoType.CMsgClientMMSGetLobbyData).protoEncode({
615
606
  app_id: 730,
616
607
  steam_id_lobby: lobbyID.toString(),
617
608
  }),
618
609
  function (payload) {
619
610
  clearTimeout(timeout);
620
- const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer());
611
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSLobbyData).protoDecode(payload.toBuffer());
621
612
  result.steam_id_lobby = result.steam_id_lobby.toString();
622
613
  resolve(result);
623
614
  },
@@ -630,19 +621,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
630
621
 
631
622
  steamClient._send(
632
623
  {
633
- msg: Protos.csgo.EMsg.k_EMsgClientMMSJoinLobby,
624
+ msg: ESteamProto.EMsg.k_EMsgClientMMSJoinLobby,
634
625
  proto: {
635
626
  steamid: steamClient.steamID.getSteamID64(),
636
627
  routing_appid: 730,
637
628
  },
638
629
  }, //CMsgClientMMSUserJoinedLobby CMsgClientMMSJoinLobby
639
- protoEncode(Protos.csgo.CMsgClientMMSJoinLobby, {
630
+ new SteamProto(SteamProtoType.CMsgClientMMSJoinLobby).protoEncode({
640
631
  app_id: 730,
641
632
  steam_id_lobby: lobbyID,
642
633
  persona_name: steamClient.accountInfo.name,
643
634
  }),
644
635
  function (payload) {
645
- const result = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload.toBuffer());
636
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSJoinLobbyResponse).protoDecode(payload.toBuffer());
646
637
  result.steam_id_lobby = result.steam_id_lobby.toString();
647
638
  result.steam_id_owner = result.steam_id_owner.toString();
648
639
  console.log(result);
@@ -662,14 +653,14 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
662
653
  }
663
654
 
664
655
  async function sendHello() {
665
- steamClient.sendToGC(AppID, Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello, {}, Buffer.alloc(0));
666
- // steamClient.sendToGC(AppID, Protos.csgo.EGCBaseClientMsg.k_EMsgGCClientHello, {}, Buffer.alloc(0));
656
+ steamClient.sendToGC(AppID, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello, {}, Buffer.alloc(0));
657
+ // steamClient.sendToGC(AppID, ESteamProto.EGCBaseClientMsg.k_EMsgGCClientHello, {}, Buffer.alloc(0));
667
658
 
668
659
  steamClient.sendToGC(
669
660
  AppID,
670
- Protos.csgo.EGCBaseClientMsg.k_EMsgGCClientHello,
661
+ ESteamProto.EGCBaseClientMsg.k_EMsgGCClientHello,
671
662
  {},
672
- protoEncode(Protos.csgo.CMsgClientHello, {
663
+ new SteamProto(SteamProtoType.CMsgClientHello).protoEncode({
673
664
  version: 2000258, //get from https://github.com/SteamDatabase/GameTracking-CS2/commits
674
665
  client_session_need: 0,
675
666
  client_launcher: 0,
@@ -680,7 +671,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
680
671
 
681
672
  async function requestCoPlays() {
682
673
  return new Promise((resolve) => {
683
- steamClient.sendToGC(AppID, Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays, {}, Buffer.alloc(0));
674
+ steamClient.sendToGC(AppID, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays, {}, Buffer.alloc(0));
684
675
  pushGCCallback("RequestCoPlays", resolve, 30000);
685
676
  });
686
677
  }
@@ -705,7 +696,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
705
696
  const isSuccess = await login(true);
706
697
  if (isSuccess) {
707
698
  const loggedOnResponse = await new Promise((resolve) => {
708
- onEvent("loggedOn", resolve, true, 180000);
699
+ onEvent(SteamClientEvents.loggedOn, resolve, true, 180000);
709
700
  });
710
701
  if (loggedOnResponse) {
711
702
  console.log("Relogin success");
@@ -787,17 +778,17 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
787
778
  async receivedFromGC(appid, msgType, payload) {
788
779
  const key = getECsgoGCMsgKey(msgType);
789
780
  switch (msgType) {
790
- case Protos.csgo.EMsg.k_EMsgClientChatInvite: {
781
+ case ESteamProto.EMsg.k_EMsgClientChatInvite: {
791
782
  log(payload);
792
783
  break;
793
784
  }
794
- case Protos.csgo.ECsgoGCMsg.k_EMsgClientMMSJoinLobbyResponse: {
795
- const msg = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload);
785
+ case ESteamProto.ECsgoGCMsg.k_EMsgClientMMSJoinLobbyResponse: {
786
+ const msg = new SteamProto(SteamProtoType.CMsgClientMMSJoinLobbyResponse).protoDecode(payload);
796
787
  log(msg);
797
788
  break;
798
789
  }
799
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Invite: {
800
- const msg = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_Party_Invite, payload);
790
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Invite: {
791
+ const msg = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Invite).protoDecode(payload);
801
792
  const sid64 = SteamID.fromIndividualAccountID(msg.accountid).getSteamID64();
802
793
  if (events.partyInvite?.length) {
803
794
  const personas = await getPersonas([sid64]);
@@ -811,22 +802,22 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
811
802
  // joinLobby(msg.lobbyid, msg.accountid)
812
803
  break;
813
804
  }
814
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays: {
815
- const msg = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_Account_RequestCoPlays, payload);
805
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Account_RequestCoPlays: {
806
+ const msg = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Account_RequestCoPlays).protoDecode(payload);
816
807
  const personas = msg.players.map((p) => SteamID.fromIndividualAccountID(p.accountid));
817
808
  callGCCallback("RequestCoPlays", personas);
818
809
  break;
819
810
  }
820
- case Protos.csgo.EGCBaseClientMsg.k_EMsgGCClientWelcome: {
811
+ case ESteamProto.EGCBaseClientMsg.k_EMsgGCClientWelcome: {
821
812
  prime = false;
822
- const CMsgClientWelcome = protoDecode(Protos.csgo.CMsgClientWelcome, payload);
813
+ const CMsgClientWelcome = new SteamProto(SteamProtoType.CMsgClientWelcome).protoDecode(payload);
823
814
  const obj = {};
824
815
  for (const outofdate_cache of CMsgClientWelcome.outofdate_subscribed_caches) {
825
816
  for (const cache_object of outofdate_cache.objects) {
826
817
  for (const object_data of cache_object.object_data) {
827
818
  switch (cache_object.type_id) {
828
819
  case 1: {
829
- const result = protoDecode(Protos.csgo.CSOEconItem, object_data);
820
+ const result = new SteamProto(SteamProtoType.CSOEconItem).protoDecode(object_data);
830
821
  result.id = result.id.toNumber();
831
822
  result.original_id = result.original_id.toNumber();
832
823
  if (!obj.items) {
@@ -836,7 +827,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
836
827
  break;
837
828
  }
838
829
  case 2: {
839
- const result = protoDecode(Protos.csgo.CSOPersonaDataPublic, object_data);
830
+ const result = new SteamProto(SteamProtoType.CSOPersonaDataPublic).protoDecode(object_data);
840
831
  obj.PersonaDataPublic = result;
841
832
  const example = {
842
833
  player_level: 4, //CSGO_Profile_Rank
@@ -850,11 +841,11 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
850
841
  break;
851
842
  }
852
843
  case 5: {
853
- const result = protoDecode(Protos.csgo.CSOItemRecipe, object_data);
844
+ const result = new SteamProto(SteamProtoType.CSOItemRecipe).protoDecode(object_data);
854
845
  break;
855
846
  }
856
847
  case 7: {
857
- const CSOEconGameAccountClient = protoDecode(Protos.csgo.CSOEconGameAccountClient, object_data);
848
+ const CSOEconGameAccountClient = new SteamProto(SteamProtoType.CSOEconGameAccountClient).protoDecode(object_data);
858
849
  const CSOEconGameAccountClientExample = {
859
850
  additional_backpack_slots: 0,
860
851
  bonus_xp_timestamp_refresh: 1688518800, //Wednesday 1:00:00 AM every week
@@ -879,36 +870,36 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
879
870
  }
880
871
 
881
872
  case 35: {
882
- // const result =protoDecode(Protos.csgo.CSOSelectedItemPreset, object_data);
873
+ // const result =protoDecode(SteamProtoType.CSOSelectedItemPreset, object_data);
883
874
  break;
884
875
  }
885
876
 
886
877
  case 36: {
887
- // const result =protoDecode(Protos.csgo.CSOEconItemPresetInstance, object_data);
878
+ // const result =protoDecode(SteamProtoType.CSOEconItemPresetInstance, object_data);
888
879
  break;
889
880
  }
890
881
  case 38: {
891
- const result = protoDecode(Protos.csgo.CSOEconItemDropRateBonus, object_data);
882
+ const result = new SteamProto(SteamProtoType.CSOEconItemDropRateBonus).protoDecode(object_data);
892
883
  break;
893
884
  }
894
885
  case 39: {
895
- const result = protoDecode(Protos.csgo.CSOEconItemLeagueViewPass, object_data);
886
+ const result = new SteamProto(SteamProtoType.CSOEconItemLeagueViewPass).protoDecode(object_data);
896
887
  break;
897
888
  }
898
889
  case 40: {
899
- const result = protoDecode(Protos.csgo.CSOEconItemEventTicket, object_data);
890
+ const result = new SteamProto(SteamProtoType.CSOEconItemEventTicket).protoDecode(object_data);
900
891
  break;
901
892
  }
902
893
  case 41: {
903
- const result = protoDecode(Protos.csgo.CSOAccountSeasonalOperation, object_data);
894
+ const result = new SteamProto(SteamProtoType.CSOAccountSeasonalOperation).protoDecode(object_data);
904
895
  break;
905
896
  }
906
897
  case 42: {
907
- // const result =protoDecode(Protos.csgo.CSOEconItemTournamentPassport, object_data);
898
+ // const result =protoDecode(SteamProtoType.CSOEconItemTournamentPassport, object_data);
908
899
  break;
909
900
  }
910
901
  case 43: {
911
- const result = protoDecode(Protos.csgo.CSOEconDefaultEquippedDefinitionInstanceClient, object_data);
902
+ const result = new SteamProto(SteamProtoType.CSOEconDefaultEquippedDefinitionInstanceClient).protoDecode(object_data);
912
903
  const example = {
913
904
  account_id: 1080136620,
914
905
  item_definition: 61,
@@ -918,15 +909,15 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
918
909
  break;
919
910
  }
920
911
  case 45: {
921
- const result = protoDecode(Protos.csgo.CSOEconCoupon, object_data);
912
+ const result = new SteamProto(SteamProtoType.CSOEconCoupon).protoDecode(object_data);
922
913
  break;
923
914
  }
924
915
  case 46: {
925
- const result = protoDecode(Protos.csgo.CSOQuestProgress, object_data);
916
+ const result = new SteamProto(SteamProtoType.CSOQuestProgress).protoDecode(object_data);
926
917
  break;
927
918
  }
928
919
  case 4: {
929
- const result = protoDecode(Protos.csgo.CSOAccountItemPersonalStore, object_data);
920
+ const result = new SteamProto(SteamProtoType.CSOAccountItemPersonalStore).protoDecode(object_data);
930
921
  result.generation_time = result.generation_time * 1000;
931
922
  if (Array.isArray(result.items)) {
932
923
  result.items = result.items.map((item) => item.toNumber());
@@ -962,24 +953,24 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
962
953
  }
963
954
  break;
964
955
  }
965
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate: {
966
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate, payload);
956
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate: {
957
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate).protoDecode(payload);
967
958
  break;
968
959
  }
969
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientGlobalStats: {
970
- const result = protoDecode(Protos.csgo.CMsgClientUGSGetGlobalStatsResponse, payload);
960
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientGlobalStats: {
961
+ const result = new SteamProto(SteamProtoType.CMsgClientUGSGetGlobalStatsResponse).protoDecode(payload);
971
962
  break;
972
963
  }
973
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportPlayer: {
974
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientReportPlayer, payload);
964
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportPlayer: {
965
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientReportPlayer).protoDecode(payload);
975
966
  break;
976
967
  }
977
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientTextMsg: {
978
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_GC2ClientTextMsg, payload);
968
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GC2ClientTextMsg: {
969
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_GC2ClientTextMsg).protoDecode(payload);
979
970
  break;
980
971
  }
981
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello: {
982
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello, payload);
972
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello: {
973
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello).protoDecode(payload);
983
974
  const example = {
984
975
  my_current_event_teams: [],
985
976
  my_current_event_stages: [],
@@ -1046,64 +1037,64 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1046
1037
  callEvent(events.csgoClientHello, result);
1047
1038
  break;
1048
1039
  }
1049
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportResponse: {
1050
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientReportResponse, payload);
1040
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientReportResponse: {
1041
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientReportResponse).protoDecode(payload);
1051
1042
  break;
1052
1043
  }
1053
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse: {
1054
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientCommendPlayer, payload);
1044
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse: {
1045
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientCommendPlayer).protoDecode(payload);
1055
1046
  break;
1056
1047
  }
1057
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment: {
1058
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment, payload);
1048
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment: {
1049
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment).protoDecode(payload);
1059
1050
  break;
1060
1051
  }
1061
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchList: {
1062
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_MatchList, payload);
1052
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchList: {
1053
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_MatchList).protoDecode(payload);
1063
1054
  break;
1064
1055
  }
1065
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GetEventFavorites_Response: {
1066
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_GetEventFavorites_Response, payload);
1056
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_GetEventFavorites_Response: {
1057
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_GetEventFavorites_Response).protoDecode(payload);
1067
1058
  break;
1068
1059
  }
1069
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_StartAgreementSessionInGame: {
1060
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_StartAgreementSessionInGame: {
1070
1061
  break;
1071
1062
  }
1072
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_ClientDeepStats: {
1073
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_ClientDeepStats, payload);
1063
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_ClientDeepStats: {
1064
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_ClientDeepStats).protoDecode(payload);
1074
1065
  break;
1075
1066
  }
1076
- case Protos.csgo.EGCBaseClientMsg.k_EMsgGCClientConnectionStatus: {
1077
- const result = protoDecode(Protos.csgo.CMsgConnectionStatus, payload);
1067
+ case ESteamProto.EGCBaseClientMsg.k_EMsgGCClientConnectionStatus: {
1068
+ const result = new SteamProto(SteamProtoType.CMsgConnectionStatus).protoDecode(payload);
1078
1069
  break;
1079
1070
  }
1080
- case Protos.csgo.EGCItemMsg.k_EMsgGCStoreGetUserDataResponse: {
1081
- const result = protoDecode(Protos.csgo.CMsgStoreGetUserDataResponse, payload);
1071
+ case ESteamProto.EGCItemMsg.k_EMsgGCStoreGetUserDataResponse: {
1072
+ const result = new SteamProto(SteamProtoType.CMsgStoreGetUserDataResponse).protoDecode(payload);
1082
1073
  break;
1083
1074
  }
1084
- case Protos.csgo.EGCItemMsg.k_EMsgGCStorePurchaseFinalizeResponse: {
1085
- const result = protoDecode(Protos.csgo.CMsgGCStorePurchaseFinalizeResponse, payload);
1075
+ case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseFinalizeResponse: {
1076
+ const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseFinalizeResponse).protoDecode(payload);
1086
1077
  break;
1087
1078
  }
1088
- case Protos.csgo.EGCItemMsg.k_EMsgGCStorePurchaseCancelResponse: {
1089
- const result = protoDecode(Protos.csgo.CMsgGCStorePurchaseCancelResponse, payload);
1079
+ case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseCancelResponse: {
1080
+ const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseCancelResponse).protoDecode(payload);
1090
1081
  break;
1091
1082
  }
1092
- case Protos.csgo.EGCItemMsg.k_EMsgGCStorePurchaseInitResponse: {
1093
- const result = protoDecode(Protos.csgo.CMsgGCStorePurchaseInitResponse, payload);
1083
+ case ESteamProto.EGCItemMsg.k_EMsgGCStorePurchaseInitResponse: {
1084
+ const result = new SteamProto(SteamProtoType.CMsgGCStorePurchaseInitResponse).protoDecode(payload);
1094
1085
  break;
1095
1086
  }
1096
- case Protos.csgo.EMsg.k_EMsgClientMMSCreateLobbyResponse: {
1097
- const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload);
1087
+ case ESteamProto.EMsg.k_EMsgClientMMSCreateLobbyResponse: {
1088
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoDecode(payload);
1098
1089
  console.log("k_EMsgClientMMSCreateLobbyResponse", result);
1099
1090
  break;
1100
1091
  }
1101
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate: {
1102
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientGCRankUpdate, payload);
1092
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate: {
1093
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientGCRankUpdate).protoDecode(payload);
1103
1094
  break;
1104
1095
  }
1105
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search: {
1106
- const result = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_Party_SearchResults, payload);
1096
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Search: {
1097
+ const result = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_SearchResults).protoDecode(payload);
1107
1098
  const entries = _.uniqBy(result.entries, "id");
1108
1099
  //{
1109
1100
  // id: 144900402,
@@ -1175,8 +1166,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1175
1166
  callGCCallback("partySearch", players);
1176
1167
  break;
1177
1168
  }
1178
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayersProfile: {
1179
- let data = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_PlayersProfile, payload)?.account_profiles;
1169
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_PlayersProfile: {
1170
+ let data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_PlayersProfile).protoDecode(payload)?.account_profiles;
1180
1171
  const dataExample = [
1181
1172
  {
1182
1173
  my_current_event_teams: [],
@@ -1248,8 +1239,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1248
1239
  callEvent(events.playersProfile, player);
1249
1240
  break;
1250
1241
  }
1251
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientLogonFatalError: {
1252
- const data = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientLogonFatalError, payload);
1242
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientLogonFatalError: {
1243
+ const data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientLogonFatalError).protoDecode(payload);
1253
1244
  const dataExample = {
1254
1245
  errorcode: 4,
1255
1246
  message: "",
@@ -1258,8 +1249,8 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1258
1249
  callEvent(events.fatalError, data);
1259
1250
  break;
1260
1251
  }
1261
- case Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData: {
1262
- const data = protoDecode(Protos.csgo.CMsgGCCStrike15_v2_ClientRequestJoinFriendData, payload);
1252
+ case ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData: {
1253
+ const data = new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestJoinFriendData).protoDecode(payload);
1263
1254
  if (!data?.account_id) {
1264
1255
  return;
1265
1256
  }
@@ -1276,10 +1267,10 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1276
1267
  }
1277
1268
  default:
1278
1269
  log(`receivedFromGC ${msgType} ${key}`);
1279
- const results = Object.values(Protos.csgo)
1270
+ const results = Object.values(SteamProtoType)
1280
1271
  .map(function (p) {
1281
1272
  try {
1282
- return protoDecode(p, payload);
1273
+ return new SteamProto(p).protoDecode(payload);
1283
1274
  } catch (e) {}
1284
1275
  })
1285
1276
  .filter(function (result) {
@@ -1534,23 +1525,23 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1534
1525
  // });
1535
1526
 
1536
1527
  function getECsgoGCMsgKey(_key) {
1537
- for (let key in Protos.csgo.ECsgoGCMsg) {
1538
- if (Protos.csgo.ECsgoGCMsg[key] == _key) {
1528
+ for (let key in ESteamProto.ECsgoGCMsg) {
1529
+ if (ESteamProto.ECsgoGCMsg[key] == _key) {
1539
1530
  return key;
1540
1531
  }
1541
1532
  }
1542
- for (let key in Protos.csgo.EGCBaseClientMsg) {
1543
- if (Protos.csgo.EGCBaseClientMsg[key] == _key) {
1533
+ for (let key in ESteamProto.EGCBaseClientMsg) {
1534
+ if (ESteamProto.EGCBaseClientMsg[key] == _key) {
1544
1535
  return key;
1545
1536
  }
1546
1537
  }
1547
- for (let key in Protos.csgo.EMsg) {
1548
- if (Protos.csgo.EMsg[key] == _key) {
1538
+ for (let key in ESteamProto.EMsg) {
1539
+ if (ESteamProto.EMsg[key] == _key) {
1549
1540
  return key;
1550
1541
  }
1551
1542
  }
1552
- for (let key in Protos.csgo.EGCItemMsg) {
1553
- if (Protos.csgo.EGCItemMsg[key] == _key) {
1543
+ for (let key in ESteamProto.EGCItemMsg) {
1544
+ if (ESteamProto.EGCItemMsg[key] == _key) {
1554
1545
  return key;
1555
1546
  }
1556
1547
  }
@@ -1606,9 +1597,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1606
1597
  const accountid = new SteamID(steamId).accountid;
1607
1598
  steamClient.sendToGC(
1608
1599
  730,
1609
- Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile,
1600
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile,
1610
1601
  {},
1611
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_ClientRequestPlayersProfile, {
1602
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestPlayersProfile).protoEncode({
1612
1603
  account_id: accountid, // account_id: new SteamID('76561199184696945').accountid,
1613
1604
  request_level: 32,
1614
1605
  }),
@@ -1794,12 +1785,12 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1794
1785
  async function init() {
1795
1786
  bindEvent();
1796
1787
  if (await login()) {
1797
- steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientRequestedClientStats, function (payload) {
1798
- const result = protoDecode(Protos.csgo.CMsgClientRequestedClientStats, payload.toBuffer());
1788
+ steamClient._handlerManager.add(ESteamProto.EMsg.k_EMsgClientRequestedClientStats, function (payload) {
1789
+ const result = new SteamProto(SteamProtoType.CMsgClientRequestedClientStats).protoDecode(payload.toBuffer());
1799
1790
  // console.log("CMsgClientRequestedClientStats", result);
1800
1791
  });
1801
- steamClient._handlerManager.add(Protos.csgo.EMsg.k_EMsgClientMMSLobbyData, function (payload) {
1802
- const result = protoDecode(Protos.csgo.CMsgClientMMSLobbyData, payload.toBuffer());
1792
+ steamClient._handlerManager.add(ESteamProto.EMsg.k_EMsgClientMMSLobbyData, function (payload) {
1793
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSLobbyData).protoDecode(payload.toBuffer());
1803
1794
  // console.log("CMsgClientMMSLobbyData", result, result.metadata);
1804
1795
  });
1805
1796
  }
@@ -1819,9 +1810,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1819
1810
  lastTimePartyRegister = Date.now();
1820
1811
  steamClient.sendToGC(
1821
1812
  730,
1822
- Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Register,
1813
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_Party_Register,
1823
1814
  {},
1824
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_Party_Register, {
1815
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_Party_Register).protoEncode({
1825
1816
  // id : 0,
1826
1817
  ver: CSGO_VER,
1827
1818
  apr: prime ? 1 : 0, //prime
@@ -2185,9 +2176,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2185
2176
  pushGCCallback(`requestJoinFriendData_${accountID}`, resolve, 30000);
2186
2177
  steamClient.sendToGC(
2187
2178
  AppID,
2188
- Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData,
2179
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData,
2189
2180
  {},
2190
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_ClientRequestJoinFriendData, {
2181
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientRequestJoinFriendData).protoEncode({
2191
2182
  version: version || CSGO_VER,
2192
2183
  account_id: accountID,
2193
2184
  join_token: joinToken,
@@ -2198,21 +2189,21 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2198
2189
  }
2199
2190
 
2200
2191
  function redeemFreeReward(itemIds, generation_time) {
2201
- console.log(`Sent message to GC: AppID ${AppID}, MessageType ${Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward}`);
2192
+ console.log(`Sent message to GC: AppID ${AppID}, MessageType ${ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward}`);
2202
2193
 
2203
- const encodedMessages = protoEncode(Protos.csgo.CMsgGCCstrike15_v2_ClientRedeemFreeReward, {
2194
+ const encodedMessages = new SteamProto(SteamProtoType.CMsgGCCstrike15_v2_ClientRedeemFreeReward).protoEncode({
2204
2195
  items: itemIds,
2205
2196
  redeemable_balance: 0,
2206
2197
  generation_time: generation_time,
2207
2198
  });
2208
- steamClient.sendToGC(730, Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward, {}, encodedMessages, function (payload) {
2199
+ steamClient.sendToGC(730, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward, {}, encodedMessages, function (payload) {
2209
2200
  console.log(payload);
2210
2201
  });
2211
2202
 
2212
2203
  setTimeout(function () {
2213
2204
  steamClient._send(
2214
2205
  {
2215
- msg: Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
2206
+ msg: ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
2216
2207
  proto: {
2217
2208
  steamid: steamClient.steamID.getSteamID64(),
2218
2209
  routing_appid: 730,
@@ -2234,13 +2225,13 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2234
2225
 
2235
2226
  steamClient._send(
2236
2227
  {
2237
- msg: Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate,
2228
+ msg: ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientGCRankUpdate,
2238
2229
  proto: {
2239
2230
  steamid: steamClient.steamID.getSteamID64(),
2240
2231
  routing_appid: 730,
2241
2232
  },
2242
2233
  },
2243
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_ClientGCRankUpdate, {
2234
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_ClientGCRankUpdate).protoEncode({
2244
2235
  rankings: [
2245
2236
  {
2246
2237
  rank_type_id: 7, //wing man
@@ -2264,9 +2255,9 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2264
2255
  function acknowledgePenalty() {
2265
2256
  steamClient.sendToGC(
2266
2257
  730,
2267
- Protos.csgo.ECsgoGCMsg.k_EMsgGCCStrike15_v2_AcknowledgePenalty,
2258
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_AcknowledgePenalty,
2268
2259
  {},
2269
- protoEncode(Protos.csgo.CMsgGCCStrike15_v2_AcknowledgePenalty, {
2260
+ new SteamProto(SteamProtoType.CMsgGCCStrike15_v2_AcknowledgePenalty).protoEncode({
2270
2261
  acknowledged: 1,
2271
2262
  }),
2272
2263
  );
@@ -2514,19 +2505,19 @@ SteamClient.isAccountPlayable = async function isAccountPlayable({ cookie, clien
2514
2505
  ...rest,
2515
2506
  });
2516
2507
 
2517
- steamClient.onEvent("error", ({ eresult, msg, error }) => {
2508
+ steamClient.onEvent(SteamClientEvents.error, ({ eresult, msg, error }) => {
2518
2509
  doResolve({ eresult, msg, error });
2519
2510
  });
2520
2511
 
2521
- steamClient.onEvent("csgoOnline", (ClientWelcome) => {
2512
+ steamClient.onEvent(SteamClientEvents.csgoOnline, (ClientWelcome) => {
2522
2513
  doResolve({ playable: true });
2523
2514
  });
2524
2515
 
2525
- steamClient.onEvent("csgoClientHello", (ClientHello) => {
2516
+ steamClient.onEvent(SteamClientEvents.csgoClientHello, (ClientHello) => {
2526
2517
  doResolve({ playable: true });
2527
2518
  });
2528
2519
 
2529
- steamClient.onEvent("playingState", ({ playing_blocked, playing_app }) => {
2520
+ steamClient.onEvent(SteamClientEvents.playingState, ({ playing_blocked, playing_app }) => {
2530
2521
  if (playing_blocked) {
2531
2522
  doResolve({ playable: false });
2532
2523
  } else {