steamworks-ffi-node 0.4.1 → 0.5.0

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.
@@ -0,0 +1,602 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SteamFriendsManager = void 0;
37
+ const koffi = __importStar(require("koffi"));
38
+ const types_1 = require("../types");
39
+ /**
40
+ * Manager for Steam Friends API operations
41
+ *
42
+ * The SteamFriendsManager provides comprehensive access to Steam's social features,
43
+ * allowing you to retrieve information about the current user and their friends.
44
+ *
45
+ * - Current user information (persona name, online state)
46
+ * - Friends list retrieval and iteration
47
+ * - Individual friend information (name, state, relationship)
48
+ * - Friend details (Steam level, currently playing game)
49
+ *
50
+ * @remarks
51
+ * All methods require the Steam API to be initialized. The manager checks initialization
52
+ * status and Friends interface availability before making API calls.
53
+ *
54
+ * @example Get current user information
55
+ * ```typescript
56
+ * const steam = SteamworksSDK.getInstance();
57
+ * steam.init({ appId: 480 });
58
+ *
59
+ * const myName = steam.friends.getPersonaName();
60
+ * const myState = steam.friends.getPersonaState();
61
+ * console.log(`${myName} is ${myState === EPersonaState.Online ? 'online' : 'offline'}`);
62
+ * ```
63
+ *
64
+ * @example Get all friends
65
+ * ```typescript
66
+ * const friends = steam.friends.getAllFriends(EFriendFlags.Immediate);
67
+ * friends.forEach(friend => {
68
+ * console.log(`${friend.personaName} (${friend.steamId})`);
69
+ * console.log(`Status: ${friend.personaState}`);
70
+ *
71
+ * const gameInfo = steam.friends.getFriendGamePlayed(friend.steamId);
72
+ * if (gameInfo) {
73
+ * console.log(`Playing game: ${gameInfo.gameId}`);
74
+ * }
75
+ * });
76
+ * ```
77
+ *
78
+ * @example Iterate through friends manually
79
+ * ```typescript
80
+ * const count = steam.friends.getFriendCount(EFriendFlags.Immediate);
81
+ * for (let i = 0; i < count; i++) {
82
+ * const steamId = steam.friends.getFriendByIndex(i, EFriendFlags.Immediate);
83
+ * if (steamId) {
84
+ * const name = steam.friends.getFriendPersonaName(steamId);
85
+ * const level = steam.friends.getFriendSteamLevel(steamId);
86
+ * console.log(`${name} - Level ${level}`);
87
+ * }
88
+ * }
89
+ * ```
90
+ *
91
+ * @see {@link https://partner.steamgames.com/doc/api/ISteamFriends ISteamFriends Documentation}
92
+ */
93
+ class SteamFriendsManager {
94
+ /**
95
+ * Creates a new SteamFriendsManager instance
96
+ *
97
+ * @param libraryLoader - The Steam library loader for FFI calls
98
+ * @param apiCore - The Steam API core for lifecycle management
99
+ */
100
+ constructor(libraryLoader, apiCore) {
101
+ this.libraryLoader = libraryLoader;
102
+ this.apiCore = apiCore;
103
+ }
104
+ /**
105
+ * Gets the current user's persona name (Steam display name)
106
+ *
107
+ * @returns The user's Steam display name, or empty string if unavailable
108
+ *
109
+ * @remarks
110
+ * This returns the name that other users see when they view your profile.
111
+ * It may differ from your account name used for login.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const myName = steam.friends.getPersonaName();
116
+ * console.log(`Logged in as: ${myName}`);
117
+ * ```
118
+ */
119
+ getPersonaName() {
120
+ if (!this.apiCore.isInitialized()) {
121
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
122
+ return '';
123
+ }
124
+ const friendsInterface = this.apiCore.getFriendsInterface();
125
+ if (!friendsInterface) {
126
+ console.warn('[Steamworks] WARNING: Friends interface not available');
127
+ return '';
128
+ }
129
+ try {
130
+ const name = this.libraryLoader.SteamAPI_ISteamFriends_GetPersonaName(friendsInterface);
131
+ return name || '';
132
+ }
133
+ catch (error) {
134
+ console.error('[Steamworks] Error getting persona name:', error);
135
+ return '';
136
+ }
137
+ }
138
+ /**
139
+ * Gets the current user's persona state (online status)
140
+ *
141
+ * @returns The user's current online status from {@link EPersonaState}
142
+ *
143
+ * @remarks
144
+ * The persona state indicates the user's current availability:
145
+ * - Offline: User is not logged in
146
+ * - Online: User is online and available
147
+ * - Busy: User is online but marked as busy
148
+ * - Away: User is away from keyboard
149
+ * - Snooze: User is auto-away
150
+ * - LookingToTrade: User is looking to trade items
151
+ * - LookingToPlay: User is looking for a game
152
+ * - Invisible: User appears offline to others
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const state = steam.friends.getPersonaState();
157
+ * if (state === EPersonaState.Online) {
158
+ * console.log('You are online!');
159
+ * }
160
+ * ```
161
+ */
162
+ getPersonaState() {
163
+ if (!this.apiCore.isInitialized()) {
164
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
165
+ return types_1.EPersonaState.Offline;
166
+ }
167
+ const friendsInterface = this.apiCore.getFriendsInterface();
168
+ if (!friendsInterface) {
169
+ console.warn('[Steamworks] WARNING: Friends interface not available');
170
+ return types_1.EPersonaState.Offline;
171
+ }
172
+ try {
173
+ const state = this.libraryLoader.SteamAPI_ISteamFriends_GetPersonaState(friendsInterface);
174
+ return state;
175
+ }
176
+ catch (error) {
177
+ console.error('[Steamworks] Error getting persona state:', error);
178
+ return types_1.EPersonaState.Offline;
179
+ }
180
+ }
181
+ /**
182
+ * Gets the count of friends matching specified flags
183
+ *
184
+ * @param friendFlags - Flags to filter which friends to count (default: {@link EFriendFlags.Immediate})
185
+ * @returns The number of friends matching the specified flags
186
+ *
187
+ * @remarks
188
+ * Common flag combinations:
189
+ * - `EFriendFlags.Immediate`: Regular friends (most common)
190
+ * - `EFriendFlags.All`: All relationships including blocked, ignored, etc.
191
+ * - `EFriendFlags.OnGameServer`: Friends on the same game server
192
+ *
193
+ * The same flags must be used with {@link getFriendByIndex} to iterate the list.
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * const friendCount = steam.friends.getFriendCount(EFriendFlags.Immediate);
198
+ * console.log(`You have ${friendCount} friends`);
199
+ * ```
200
+ *
201
+ * @see {@link getFriendByIndex}
202
+ * @see {@link getAllFriends}
203
+ */
204
+ getFriendCount(friendFlags = types_1.EFriendFlags.Immediate) {
205
+ if (!this.apiCore.isInitialized()) {
206
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
207
+ return 0;
208
+ }
209
+ const friendsInterface = this.apiCore.getFriendsInterface();
210
+ if (!friendsInterface) {
211
+ console.warn('[Steamworks] WARNING: Friends interface not available');
212
+ return 0;
213
+ }
214
+ try {
215
+ const count = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendCount(friendsInterface, friendFlags);
216
+ return count;
217
+ }
218
+ catch (error) {
219
+ console.error('[Steamworks] Error getting friend count:', error);
220
+ return 0;
221
+ }
222
+ }
223
+ /**
224
+ * Gets a friend's Steam ID by their index in the friends list
225
+ *
226
+ * @param index - Zero-based index of the friend (0 to {@link getFriendCount}() - 1)
227
+ * @param friendFlags - Same flags used in {@link getFriendCount} (default: {@link EFriendFlags.Immediate})
228
+ * @returns The friend's Steam ID as a string, or null if the index is invalid
229
+ *
230
+ * @remarks
231
+ * Use this method to iterate through the friends list:
232
+ * 1. Call {@link getFriendCount} with specific flags
233
+ * 2. Loop from 0 to count-1 calling this method with the same flags
234
+ * 3. Use the returned Steam ID with other methods like {@link getFriendPersonaName}
235
+ *
236
+ * The flags must match those used in {@link getFriendCount} or you'll get incorrect results.
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * const count = steam.friends.getFriendCount(EFriendFlags.Immediate);
241
+ * for (let i = 0; i < count; i++) {
242
+ * const steamId = steam.friends.getFriendByIndex(i, EFriendFlags.Immediate);
243
+ * if (steamId) {
244
+ * const name = steam.friends.getFriendPersonaName(steamId);
245
+ * console.log(`Friend ${i}: ${name} (${steamId})`);
246
+ * }
247
+ * }
248
+ * ```
249
+ *
250
+ * @see {@link getFriendCount}
251
+ * @see {@link getAllFriends}
252
+ */
253
+ getFriendByIndex(index, friendFlags = types_1.EFriendFlags.Immediate) {
254
+ if (!this.apiCore.isInitialized()) {
255
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
256
+ return null;
257
+ }
258
+ const friendsInterface = this.apiCore.getFriendsInterface();
259
+ if (!friendsInterface) {
260
+ console.warn('[Steamworks] WARNING: Friends interface not available');
261
+ return null;
262
+ }
263
+ try {
264
+ const steamId = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendByIndex(friendsInterface, index, friendFlags);
265
+ if (steamId && steamId !== 0n) {
266
+ const steamIdStr = steamId.toString();
267
+ return steamIdStr;
268
+ }
269
+ return null;
270
+ }
271
+ catch (error) {
272
+ console.error(`[Steamworks] Error getting friend by index ${index}:`, error);
273
+ return null;
274
+ }
275
+ }
276
+ /**
277
+ * Gets a friend's persona name (Steam display name)
278
+ *
279
+ * @param steamId - The friend's Steam ID as a string
280
+ * @returns The friend's display name, or empty string if unavailable
281
+ *
282
+ * @remarks
283
+ * This returns the name that appears in the Steam friends list and chat.
284
+ * If the friend has not been seen by the current user recently, the name
285
+ * may not be immediately available and could return an empty string.
286
+ *
287
+ * @example
288
+ * ```typescript
289
+ * const steamId = steam.friends.getFriendByIndex(0, EFriendFlags.Immediate);
290
+ * if (steamId) {
291
+ * const name = steam.friends.getFriendPersonaName(steamId);
292
+ * console.log(`Friend's name: ${name}`);
293
+ * }
294
+ * ```
295
+ *
296
+ * @see {@link getPersonaName} for current user's name
297
+ */
298
+ getFriendPersonaName(steamId) {
299
+ if (!this.apiCore.isInitialized()) {
300
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
301
+ return '';
302
+ }
303
+ const friendsInterface = this.apiCore.getFriendsInterface();
304
+ if (!friendsInterface) {
305
+ console.warn('[Steamworks] WARNING: Friends interface not available');
306
+ return '';
307
+ }
308
+ try {
309
+ const name = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendPersonaName(friendsInterface, BigInt(steamId));
310
+ return name || '';
311
+ }
312
+ catch (error) {
313
+ console.error(`[Steamworks] Error getting friend persona name for ${steamId}:`, error);
314
+ return '';
315
+ }
316
+ }
317
+ /**
318
+ * Gets a friend's persona state (online status)
319
+ *
320
+ * @param steamId - The friend's Steam ID as a string
321
+ * @returns The friend's current online status from {@link EPersonaState}
322
+ *
323
+ * @remarks
324
+ * Returns the friend's current availability status. Common states include:
325
+ * - Offline (0): Friend is not logged in
326
+ * - Online (1): Friend is online and available
327
+ * - Busy (2): Friend is marked as busy
328
+ * - Away (3): Friend is away from keyboard
329
+ *
330
+ * @example
331
+ * ```typescript
332
+ * const friends = steam.friends.getAllFriends();
333
+ * const onlineFriends = friends.filter(f =>
334
+ * steam.friends.getFriendPersonaState(f.steamId) !== EPersonaState.Offline
335
+ * );
336
+ * console.log(`${onlineFriends.length} friends are online`);
337
+ * ```
338
+ *
339
+ * @see {@link getPersonaState} for current user's state
340
+ * @see {@link EPersonaState}
341
+ */
342
+ getFriendPersonaState(steamId) {
343
+ if (!this.apiCore.isInitialized()) {
344
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
345
+ return types_1.EPersonaState.Offline;
346
+ }
347
+ const friendsInterface = this.apiCore.getFriendsInterface();
348
+ if (!friendsInterface) {
349
+ console.warn('[Steamworks] WARNING: Friends interface not available');
350
+ return types_1.EPersonaState.Offline;
351
+ }
352
+ try {
353
+ const state = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendPersonaState(friendsInterface, BigInt(steamId));
354
+ return state;
355
+ }
356
+ catch (error) {
357
+ console.error(`[Steamworks] Error getting friend persona state for ${steamId}:`, error);
358
+ return types_1.EPersonaState.Offline;
359
+ }
360
+ }
361
+ /**
362
+ * Gets the relationship status between the current user and another user
363
+ *
364
+ * @param steamId - The other user's Steam ID as a string
365
+ * @returns The relationship status from {@link EFriendRelationship}
366
+ *
367
+ * @remarks
368
+ * Possible relationship states include:
369
+ * - None (0): No relationship
370
+ * - Blocked (1): User is blocked
371
+ * - RequestRecipient (2): Received a friend request from this user
372
+ * - Friend (3): Users are friends
373
+ * - RequestInitiator (4): Sent a friend request to this user
374
+ * - Ignored (5): User is ignored
375
+ * - IgnoredFriend (6): User was a friend but is now ignored
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * const relationship = steam.friends.getFriendRelationship(friendSteamId);
380
+ * if (relationship === EFriendRelationship.Friend) {
381
+ * console.log('This user is your friend');
382
+ * } else if (relationship === EFriendRelationship.RequestRecipient) {
383
+ * console.log('This user sent you a friend request');
384
+ * }
385
+ * ```
386
+ *
387
+ * @see {@link EFriendRelationship}
388
+ */
389
+ getFriendRelationship(steamId) {
390
+ if (!this.apiCore.isInitialized()) {
391
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
392
+ return types_1.EFriendRelationship.None;
393
+ }
394
+ const friendsInterface = this.apiCore.getFriendsInterface();
395
+ if (!friendsInterface) {
396
+ console.warn('[Steamworks] WARNING: Friends interface not available');
397
+ return types_1.EFriendRelationship.None;
398
+ }
399
+ try {
400
+ const relationship = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendRelationship(friendsInterface, BigInt(steamId));
401
+ return relationship;
402
+ }
403
+ catch (error) {
404
+ console.error(`[Steamworks] Error getting friend relationship for ${steamId}:`, error);
405
+ return types_1.EFriendRelationship.None;
406
+ }
407
+ }
408
+ /**
409
+ * Gets all friends with their complete information in a single call
410
+ *
411
+ * @param friendFlags - Flags to filter which friends to retrieve (default: {@link EFriendFlags.Immediate})
412
+ * @returns Array of {@link FriendInfo} objects containing friend details
413
+ *
414
+ * @remarks
415
+ * This is a convenience method that combines {@link getFriendCount}, {@link getFriendByIndex},
416
+ * and several other methods to retrieve complete friend information in one call.
417
+ *
418
+ * Each {@link FriendInfo} object contains:
419
+ * - steamId: Friend's Steam ID
420
+ * - personaName: Friend's display name
421
+ * - personaState: Friend's online status
422
+ * - relationship: Relationship type with this friend
423
+ *
424
+ * For large friends lists (100+), this method makes many API calls and may take
425
+ * a moment to complete. Consider using {@link getFriendByIndex} for manual iteration
426
+ * if you need to process friends incrementally.
427
+ *
428
+ * @example
429
+ * ```typescript
430
+ * const friends = steam.friends.getAllFriends(EFriendFlags.Immediate);
431
+ * console.log(`You have ${friends.length} friends`);
432
+ *
433
+ * friends.forEach(friend => {
434
+ * console.log(`${friend.personaName} is ${friend.personaState === EPersonaState.Online ? 'online' : 'offline'}`);
435
+ * });
436
+ * ```
437
+ *
438
+ * @see {@link getFriendCount}
439
+ * @see {@link getFriendByIndex}
440
+ * @see {@link FriendInfo}
441
+ */
442
+ getAllFriends(friendFlags = types_1.EFriendFlags.Immediate) {
443
+ const friends = [];
444
+ const count = this.getFriendCount(friendFlags);
445
+ for (let i = 0; i < count; i++) {
446
+ const steamId = this.getFriendByIndex(i, friendFlags);
447
+ if (steamId) {
448
+ friends.push({
449
+ steamId,
450
+ personaName: this.getFriendPersonaName(steamId),
451
+ personaState: this.getFriendPersonaState(steamId),
452
+ relationship: this.getFriendRelationship(steamId),
453
+ });
454
+ }
455
+ }
456
+ console.log(`[Steamworks] Retrieved ${friends.length} friends`);
457
+ return friends;
458
+ }
459
+ /**
460
+ * Gets a friend's current Steam level
461
+ *
462
+ * @param steamId - The friend's Steam ID as a string
463
+ * @returns The friend's Steam level (1-5000+), or 0 if unavailable
464
+ *
465
+ * @remarks
466
+ * The Steam level indicates how much a user has participated in Steam features
467
+ * like collecting trading cards, crafting badges, and participating in events.
468
+ *
469
+ * Returns 0 if:
470
+ * - The friend's profile is private
471
+ * - The level hasn't been loaded yet
472
+ * - The API call fails
473
+ *
474
+ * @example
475
+ * ```typescript
476
+ * const friends = steam.friends.getAllFriends();
477
+ * friends.forEach(friend => {
478
+ * const level = steam.friends.getFriendSteamLevel(friend.steamId);
479
+ * console.log(`${friend.personaName} is Level ${level}`);
480
+ * });
481
+ * ```
482
+ *
483
+ * @example Find highest level friend
484
+ * ```typescript
485
+ * const friends = steam.friends.getAllFriends();
486
+ * const highestLevel = friends.reduce((max, friend) => {
487
+ * const level = steam.friends.getFriendSteamLevel(friend.steamId);
488
+ * return level > max.level ? { friend, level } : max;
489
+ * }, { friend: null, level: 0 });
490
+ *
491
+ * if (highestLevel.friend) {
492
+ * console.log(`Highest level friend: ${highestLevel.friend.personaName} (Level ${highestLevel.level})`);
493
+ * }
494
+ * ```
495
+ */
496
+ getFriendSteamLevel(steamId) {
497
+ if (!this.apiCore.isInitialized()) {
498
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
499
+ return 0;
500
+ }
501
+ const friendsInterface = this.apiCore.getFriendsInterface();
502
+ if (!friendsInterface) {
503
+ console.warn('[Steamworks] WARNING: Friends interface not available');
504
+ return 0;
505
+ }
506
+ try {
507
+ const level = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendSteamLevel(friendsInterface, BigInt(steamId));
508
+ return level;
509
+ }
510
+ catch (error) {
511
+ console.error(`[Steamworks] Error getting friend Steam level for ${steamId}:`, error);
512
+ return 0;
513
+ }
514
+ }
515
+ /**
516
+ * Checks if a friend is currently playing a game and returns game information
517
+ *
518
+ * @param steamId - The friend's Steam ID as a string
519
+ * @returns {@link FriendGameInfo} object if the friend is playing a game, null otherwise
520
+ *
521
+ * @remarks
522
+ * When a friend is actively playing a game, this returns detailed information including:
523
+ * - gameId: The Steam App ID of the game being played
524
+ * - gameIP: IP address of the game server (if on a server)
525
+ * - gamePort: Port of the game server
526
+ * - queryPort: Query port for the game server
527
+ * - steamIDLobby: Steam ID of the lobby (if in a lobby)
528
+ *
529
+ * Returns null if:
530
+ * - Friend is not playing any game
531
+ * - Friend is offline
532
+ * - Game information is not available
533
+ *
534
+ * @example Check what games friends are playing
535
+ * ```typescript
536
+ * const friends = steam.friends.getAllFriends();
537
+ * friends.forEach(friend => {
538
+ * const gameInfo = steam.friends.getFriendGamePlayed(friend.steamId);
539
+ * if (gameInfo) {
540
+ * console.log(`${friend.personaName} is playing App ${gameInfo.gameId}`);
541
+ * }
542
+ * });
543
+ * ```
544
+ *
545
+ * @example Find friends playing a specific game
546
+ * ```typescript
547
+ * const TARGET_GAME_ID = '730'; // CS:GO
548
+ * const friends = steam.friends.getAllFriends();
549
+ * const playingTargetGame = friends.filter(friend => {
550
+ * const gameInfo = steam.friends.getFriendGamePlayed(friend.steamId);
551
+ * return gameInfo && gameInfo.gameId === TARGET_GAME_ID;
552
+ * });
553
+ *
554
+ * console.log(`${playingTargetGame.length} friends are playing CS:GO`);
555
+ * ```
556
+ *
557
+ * @see {@link FriendGameInfo}
558
+ */
559
+ getFriendGamePlayed(steamId) {
560
+ if (!this.apiCore.isInitialized()) {
561
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
562
+ return null;
563
+ }
564
+ const friendsInterface = this.apiCore.getFriendsInterface();
565
+ if (!friendsInterface) {
566
+ console.warn('[Steamworks] WARNING: Friends interface not available');
567
+ return null;
568
+ }
569
+ try {
570
+ const gameInfoPtr = koffi.alloc(SteamFriendsManager.FriendGameInfo_t, 1);
571
+ const isPlaying = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendGamePlayed(friendsInterface, BigInt(steamId), gameInfoPtr);
572
+ if (isPlaying) {
573
+ const gameInfo = koffi.decode(gameInfoPtr, SteamFriendsManager.FriendGameInfo_t);
574
+ if (gameInfo.m_gameID && gameInfo.m_gameID !== 0n) {
575
+ const result = {
576
+ gameId: gameInfo.m_gameID.toString(),
577
+ gameIP: gameInfo.m_unGameIP,
578
+ gamePort: gameInfo.m_usGamePort,
579
+ queryPort: gameInfo.m_usQueryPort,
580
+ steamIDLobby: gameInfo.m_steamIDLobby.toString(),
581
+ };
582
+ return result;
583
+ }
584
+ }
585
+ return null;
586
+ }
587
+ catch (error) {
588
+ console.error(`[Steamworks] Error getting friend game played for ${steamId}:`, error);
589
+ return null;
590
+ }
591
+ }
592
+ }
593
+ exports.SteamFriendsManager = SteamFriendsManager;
594
+ /** FriendGameInfo_t struct for game information */
595
+ SteamFriendsManager.FriendGameInfo_t = koffi.struct('FriendGameInfo_t', {
596
+ m_gameID: 'uint64',
597
+ m_unGameIP: 'uint32',
598
+ m_usGamePort: 'uint16',
599
+ m_usQueryPort: 'uint16',
600
+ m_steamIDLobby: 'uint64',
601
+ });
602
+ //# sourceMappingURL=SteamFriendsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SteamFriendsManager.js","sourceRoot":"","sources":["../../src/internal/SteamFriendsManager.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare class SteamLibraryLoader {
45
45
  SteamAPI_ISteamUserStats_GetGlobalStatDouble: koffi.KoffiFunction;
46
46
  SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64: koffi.KoffiFunction;
47
47
  SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble: koffi.KoffiFunction;
48
+ SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers: koffi.KoffiFunction;
48
49
  SteamAPI_ISteamUserStats_FindOrCreateLeaderboard: koffi.KoffiFunction;
49
50
  SteamAPI_ISteamUserStats_FindLeaderboard: koffi.KoffiFunction;
50
51
  SteamAPI_ISteamUserStats_GetLeaderboardName: koffi.KoffiFunction;
@@ -59,6 +60,16 @@ export declare class SteamLibraryLoader {
59
60
  SteamAPI_ISteamUtils_IsAPICallCompleted: koffi.KoffiFunction;
60
61
  SteamAPI_ISteamUtils_GetAPICallResult: koffi.KoffiFunction;
61
62
  SteamAPI_ISteamUtils_GetAPICallFailureReason: koffi.KoffiFunction;
63
+ SteamAPI_SteamFriends_v018: koffi.KoffiFunction;
64
+ SteamAPI_ISteamFriends_GetPersonaName: koffi.KoffiFunction;
65
+ SteamAPI_ISteamFriends_GetPersonaState: koffi.KoffiFunction;
66
+ SteamAPI_ISteamFriends_GetFriendCount: koffi.KoffiFunction;
67
+ SteamAPI_ISteamFriends_GetFriendByIndex: koffi.KoffiFunction;
68
+ SteamAPI_ISteamFriends_GetFriendPersonaName: koffi.KoffiFunction;
69
+ SteamAPI_ISteamFriends_GetFriendPersonaState: koffi.KoffiFunction;
70
+ SteamAPI_ISteamFriends_GetFriendRelationship: koffi.KoffiFunction;
71
+ SteamAPI_ISteamFriends_GetFriendSteamLevel: koffi.KoffiFunction;
72
+ SteamAPI_ISteamFriends_GetFriendGamePlayed: koffi.KoffiFunction;
62
73
  /**
63
74
  * Get platform-specific Steam library path
64
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgC;IAGzC,aAAa,EAAG,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAG,KAAK,CAAC,aAAa,CAAC;IACxC,qBAAqB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5C,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,4BAA4B,EAAG,KAAK,CAAC,aAAa,CAAC;IACnD,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,wBAAwB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC/C,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC3E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,mCAAmC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC1D,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,8BAA8B,EAAG,KAAK,CAAC,aAAa,CAAC;IAGrD,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG3E,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IACjF,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjF,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,wDAAwD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG/E,4DAA4D,EAAG,KAAK,CAAC,aAAa,CAAC;IACnF,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,2DAA2D,EAAG,KAAK,CAAC,aAAa,CAAC;IAClF,sDAAsD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG7E,sCAAsC,EAAG,KAAK,CAAC,aAAa,CAAC;IAO7D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,0CAA0C,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjE,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAGhE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,kDAAkD,EAAG,KAAK,CAAC,aAAa,CAAC;IACzE,mDAAmD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG1E,kDAAkD,EAAG,KAAK,CAAC,aAAa,CAAC;IAOzE,gDAAgD,EAAG,KAAK,CAAC,aAAa,CAAC;IACvE,wCAAwC,EAAG,KAAK,CAAC,aAAa,CAAC;IAG/D,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,iDAAiD,EAAG,KAAK,CAAC,aAAa,CAAC;IACxE,iDAAiD,EAAG,KAAK,CAAC,aAAa,CAAC;IACxE,kDAAkD,EAAG,KAAK,CAAC,aAAa,CAAC;IAGzE,mDAAmD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC1E,2DAA2D,EAAG,KAAK,CAAC,aAAa,CAAC;IAClF,sDAAsD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG7E,+CAA+C,EAAG,KAAK,CAAC,aAAa,CAAC;IACtE,6CAA6C,EAAG,KAAK,CAAC,aAAa,CAAC;IAOpE,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IAOnE,0BAA0B,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjD,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,sCAAsC,EAAG,KAAK,CAAC,aAAa,CAAC;IAG7D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAG9D,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,0CAA0C,EAAG,KAAK,CAAC,aAAa,CAAC;IACjE,0CAA0C,EAAG,KAAK,CAAC,aAAa,CAAC;IAExE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAiIZ;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI;CAGrC"}