steamutils 1.3.37 → 1.3.39

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.
Files changed (3) hide show
  1. package/SteamClient.js +78 -12
  2. package/index.js +5 -5
  3. package/package.json +2 -2
package/SteamClient.js CHANGED
@@ -111,6 +111,11 @@ function SteamClient({
111
111
  const ownedApps = []
112
112
  let logOffEvent = null
113
113
 
114
+ const currentLobby = {
115
+ lobbyID: null,
116
+ timestamp: 0
117
+ }
118
+
114
119
  const onAnyCallbacks = []
115
120
 
116
121
  const events = {
@@ -467,7 +472,10 @@ function SteamClient({
467
472
  }), function (payload) {
468
473
  clearTimeout(timeout)
469
474
  const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
470
- resolve(result.steam_id_lobby.toString())
475
+ const steam_id_lobby = result.steam_id_lobby.toString();
476
+ currentLobby.lobbyID = steam_id_lobby
477
+ currentLobby.timestamp = new Date().getTime()
478
+ resolve(steam_id_lobby)
471
479
  }
472
480
  );
473
481
  })
@@ -532,7 +540,10 @@ function SteamClient({
532
540
  function (payload) {
533
541
  clearTimeout(timeout)
534
542
  const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
535
- resolve(result.steam_id_lobby.toString())
543
+ const steam_id_lobby = result.steam_id_lobby.toString();
544
+ currentLobby.lobbyID = steam_id_lobby
545
+ currentLobby.timestamp = new Date().getTime()
546
+ resolve(steam_id_lobby)
536
547
  }
537
548
  );
538
549
  })
@@ -575,6 +586,28 @@ function SteamClient({
575
586
  // })
576
587
  }
577
588
 
589
+ async function createThenInvite2Lobby(steamIds) {
590
+ if (!steamClient.steamID) {
591
+ return
592
+ }
593
+
594
+ if(!Array.isArray(steamIds)){
595
+ steamIds = [steamIds]
596
+ }
597
+
598
+ let lobbyID = null
599
+ if (currentLobby.lobbyID && currentLobby.timestamp > new Date().getTime() - 30000) {//30 seconds
600
+ lobbyID = currentLobby.lobbyID
601
+ } else {
602
+ lobbyID = await createLobby();
603
+ lobbyID = await updateLobby(lobbyID)
604
+ }
605
+
606
+ for (const steamId of steamIds) {
607
+ await invite2Lobby(lobbyID, steamId)
608
+ }
609
+ }
610
+
578
611
 
579
612
  async function getLobbyData(lobbyID) {
580
613
  if (!steamClient.steamID) {
@@ -611,13 +644,38 @@ function SteamClient({
611
644
 
612
645
  async function joinLobby(lobbyID) {
613
646
  log("joinLobby", lobbyID);//SteamID.fromIndividualAccountID(lobbyId).accountid
614
- steamClient.sendToGC(730, Protos.csgo.EMsg.k_EMsgClientMMSJoinLobby, {}, protoEncode(Protos.csgo.CMsgClientMMSJoinLobby, {
615
- app_id: 730,
616
- steam_id_lobby: lobbyID,
617
- persona_name: steamClient.accountInfo.name,
618
- }), function (...args) {
619
- log("joinLobby response", args)
620
- })
647
+
648
+ steamClient._send(
649
+ {
650
+ msg: Protos.csgo.EMsg.k_EMsgClientMMSJoinLobby,
651
+ proto: {
652
+ steamid: steamClient.steamID.getSteamID64(),
653
+ routing_appid: 730
654
+ }
655
+ },//CMsgClientMMSUserJoinedLobby CMsgClientMMSJoinLobby
656
+ protoEncode(Protos.csgo.CMsgClientMMSJoinLobby, {
657
+ app_id: 730,
658
+ steam_id_lobby: lobbyID,
659
+ persona_name: steamClient.accountInfo.name,
660
+ }),
661
+ function (payload) {
662
+ const result = protoDecode(Protos.csgo.CMsgClientMMSJoinLobbyResponse, payload.toBuffer())
663
+ result.steam_id_lobby = result.steam_id_lobby.toString()
664
+ result.steam_id_owner = result.steam_id_owner.toString()
665
+ console.log(result);
666
+ const resultExample = {
667
+ members: [],
668
+ app_id: 730,
669
+ steam_id_lobby: "3641224920",
670
+ chat_room_enter_response: 2,
671
+ max_members: 0,
672
+ lobby_type: 0,
673
+ lobby_flags: 0,
674
+ steam_id_owner: "0",
675
+ metadata: null//Buffer
676
+ }
677
+ }
678
+ )
621
679
  }
622
680
 
623
681
  async function sendHello() {
@@ -1632,8 +1690,12 @@ function SteamClient({
1632
1690
  log(reconnect ? 'reconnect with cookie' : 'login with cookie')
1633
1691
  const _clientJsToken = await new SteamUtils(typeof cookie === "function" ? await cookie() : cookie).getClientJsToken()
1634
1692
  if (_clientJsToken?.logged_in === true) {
1635
- steamClient.logOn(_clientJsToken)
1636
- return true
1693
+ try {
1694
+ await steamClient.logOn(_clientJsToken)
1695
+ return true
1696
+ } catch (e) {
1697
+ return false
1698
+ }
1637
1699
  } else {
1638
1700
  return false
1639
1701
  }
@@ -2006,6 +2068,7 @@ function SteamClient({
2006
2068
  invite2Lobby,
2007
2069
  createLobby,
2008
2070
  updateLobby,
2071
+ createThenInvite2Lobby,
2009
2072
  joinLobby,
2010
2073
  getLobbyData,
2011
2074
  partyRegister,
@@ -2189,7 +2252,10 @@ function SteamClient({
2189
2252
  steamClient.uploadRichPresence(appid, richPresence)
2190
2253
  },
2191
2254
  getUserOwnedApps,
2192
- getPlayingAppIds
2255
+ getPlayingAppIds,
2256
+ getCurrentLobby(){
2257
+ return currentLobby
2258
+ }
2193
2259
  }
2194
2260
  }
2195
2261
 
package/index.js CHANGED
@@ -18,7 +18,7 @@ import fs from "fs";
18
18
  import FormData from "form-data";
19
19
  import {StringUtils} from "alpha-common-utils/index.js";
20
20
  import * as https from "https";
21
- import sharp from "sharp";
21
+ import Jimp from "jimp";
22
22
  import path from "path";
23
23
 
24
24
  const MAX_RETRY = 10
@@ -6245,7 +6245,7 @@ class SteamUser {
6245
6245
  }
6246
6246
 
6247
6247
  async beginFileUpload(filePath) {
6248
- const metadata = await new sharp(filePath).metadata()
6248
+ const image = await Jimp.read(filePath)
6249
6249
  const stats = fs.statSync(filePath)
6250
6250
 
6251
6251
  let sha1 = "";
@@ -6258,9 +6258,9 @@ class SteamUser {
6258
6258
  file_size: stats.size,
6259
6259
  file_name: path.basename(filePath),
6260
6260
  file_sha: sha1,
6261
- file_image_width: metadata.width,
6262
- file_image_height: metadata.height,
6263
- file_type: "image/" + metadata.format,
6261
+ file_image_width: image.getWidth(),
6262
+ file_image_height: image.getHeight(),
6263
+ file_type: image.getMIME(),
6264
6264
  sessionid: this.getSessionid()
6265
6265
  }
6266
6266
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "steamutils",
3
- "version": "1.3.37",
3
+ "version": "1.3.39",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "alpha-common-utils": "^1.0.5",
@@ -10,11 +10,11 @@
10
10
  "crypto-js": "^4.2.0",
11
11
  "csgo-friendcode": "^3.0.3",
12
12
  "form-data": "^4.0.0",
13
+ "jimp": "^0.22.10",
13
14
  "lodash": "^4.17.21",
14
15
  "moment": "^2.30.1",
15
16
  "moment-timezone": "^0.5.44",
16
17
  "node-bignumber": "^1.2.2",
17
- "sharp": "^0.33.2",
18
18
  "steam-session": "^1.7.2",
19
19
  "steam-user": "^5.0.7",
20
20
  "steamcommunity": "^3.48.2",