steamworks-ffi-node 0.5.1 → 0.5.3

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.
@@ -1,6 +1,6 @@
1
1
  import { SteamLibraryLoader } from './SteamLibraryLoader';
2
2
  import { SteamAPICore } from './SteamAPICore';
3
- import { EFriendRelationship, EPersonaState, EFriendFlags, FriendInfo, FriendGameInfo } from '../types';
3
+ import { EFriendRelationship, EPersonaState, EFriendFlags, FriendInfo, FriendGameInfo, FriendsGroupID_t } from '../types';
4
4
  /**
5
5
  * Manager for Steam Friends API operations
6
6
  *
@@ -361,5 +361,372 @@ export declare class SteamFriendsManager {
361
361
  * @see {@link FriendGameInfo}
362
362
  */
363
363
  getFriendGamePlayed(steamId: string): FriendGameInfo | null;
364
+ /**
365
+ * Gets the handle for a friend's small (32x32) avatar image
366
+ *
367
+ * @param steamId - The friend's Steam ID as a string
368
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
369
+ *
370
+ * @remarks
371
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
372
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
373
+ *
374
+ * Small avatars are 32x32 pixels and are suitable for:
375
+ * - Friend list thumbnails
376
+ * - Chat message icons
377
+ * - Compact UI elements
378
+ *
379
+ * The avatar image is cached by Steam. If it returns 0, the image might
380
+ * still be loading. You can try again after a short delay.
381
+ *
382
+ * @example
383
+ * ```typescript
384
+ * const avatarHandle = steam.friends.getSmallFriendAvatar(friendSteamId);
385
+ * if (avatarHandle > 0) {
386
+ * console.log(`Small avatar handle: ${avatarHandle}`);
387
+ * // Use with ISteamUtils to get actual image data
388
+ * }
389
+ * ```
390
+ *
391
+ * @see {@link getMediumFriendAvatar}
392
+ * @see {@link getLargeFriendAvatar}
393
+ */
394
+ getSmallFriendAvatar(steamId: string): number;
395
+ /**
396
+ * Gets the handle for a friend's medium (64x64) avatar image
397
+ *
398
+ * @param steamId - The friend's Steam ID as a string
399
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
400
+ *
401
+ * @remarks
402
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
403
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
404
+ *
405
+ * Medium avatars are 64x64 pixels and are suitable for:
406
+ * - User profiles
407
+ * - Game lobby player lists
408
+ * - Standard UI elements
409
+ *
410
+ * The avatar image is cached by Steam. If it returns 0, the image might
411
+ * still be loading. You can try again after a short delay.
412
+ *
413
+ * @example
414
+ * ```typescript
415
+ * const avatarHandle = steam.friends.getMediumFriendAvatar(friendSteamId);
416
+ * if (avatarHandle > 0) {
417
+ * console.log(`Medium avatar handle: ${avatarHandle}`);
418
+ * // Use with ISteamUtils to get actual image data
419
+ * }
420
+ * ```
421
+ *
422
+ * @see {@link getSmallFriendAvatar}
423
+ * @see {@link getLargeFriendAvatar}
424
+ */
425
+ getMediumFriendAvatar(steamId: string): number;
426
+ /**
427
+ * Gets the handle for a friend's large (184x184) avatar image
428
+ *
429
+ * @param steamId - The friend's Steam ID as a string
430
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
431
+ *
432
+ * @remarks
433
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
434
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
435
+ *
436
+ * Large avatars are 184x184 pixels and are suitable for:
437
+ * - Detailed profile views
438
+ * - Full-screen overlays
439
+ * - High-resolution displays
440
+ *
441
+ * The avatar image is cached by Steam. If it returns 0, the image might
442
+ * still be loading. You can try again after a short delay.
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * const avatarHandle = steam.friends.getLargeFriendAvatar(friendSteamId);
447
+ * if (avatarHandle > 0) {
448
+ * console.log(`Large avatar handle: ${avatarHandle}`);
449
+ * // Use with ISteamUtils to get actual image data
450
+ * }
451
+ * ```
452
+ *
453
+ * @see {@link getSmallFriendAvatar}
454
+ * @see {@link getMediumFriendAvatar}
455
+ */
456
+ getLargeFriendAvatar(steamId: string): number;
457
+ /**
458
+ * Gets the number of Steam friend groups (tags) the user has created
459
+ *
460
+ * @returns The number of friend groups, or 0 if unavailable
461
+ *
462
+ * @remarks
463
+ * Steam allows users to organize friends into custom groups (also called tags).
464
+ * This returns the total number of groups the current user has created.
465
+ *
466
+ * Use this with {@link getFriendsGroupIDByIndex} to iterate through all groups.
467
+ *
468
+ * @example
469
+ * ```typescript
470
+ * const groupCount = steam.friends.getFriendsGroupCount();
471
+ * console.log(`You have ${groupCount} friend groups`);
472
+ *
473
+ * for (let i = 0; i < groupCount; i++) {
474
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(i);
475
+ * const groupName = steam.friends.getFriendsGroupName(groupId);
476
+ * console.log(`Group ${i}: ${groupName}`);
477
+ * }
478
+ * ```
479
+ *
480
+ * @see {@link getFriendsGroupIDByIndex}
481
+ * @see {@link getFriendsGroupName}
482
+ */
483
+ getFriendsGroupCount(): number;
484
+ /**
485
+ * Gets a friend group ID by its index
486
+ *
487
+ * @param index - Zero-based index of the group (0 to {@link getFriendsGroupCount}() - 1)
488
+ * @returns The group ID, or {@link INVALID_FRIENDS_GROUP_ID} if the index is invalid
489
+ *
490
+ * @remarks
491
+ * Use this method to iterate through all friend groups:
492
+ * 1. Call {@link getFriendsGroupCount} to get the total number of groups
493
+ * 2. Loop from 0 to count-1 calling this method to get each group ID
494
+ * 3. Use the returned ID with {@link getFriendsGroupName} and {@link getFriendsGroupMembersList}
495
+ *
496
+ * @example
497
+ * ```typescript
498
+ * const groupCount = steam.friends.getFriendsGroupCount();
499
+ * for (let i = 0; i < groupCount; i++) {
500
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(i);
501
+ * if (groupId !== INVALID_FRIENDS_GROUP_ID) {
502
+ * const name = steam.friends.getFriendsGroupName(groupId);
503
+ * const memberCount = steam.friends.getFriendsGroupMembersCount(groupId);
504
+ * console.log(`Group: ${name} (${memberCount} members)`);
505
+ * }
506
+ * }
507
+ * ```
508
+ *
509
+ * @see {@link getFriendsGroupCount}
510
+ * @see {@link getFriendsGroupName}
511
+ * @see {@link INVALID_FRIENDS_GROUP_ID}
512
+ */
513
+ getFriendsGroupIDByIndex(index: number): FriendsGroupID_t;
514
+ /**
515
+ * Gets the name of a friend group
516
+ *
517
+ * @param groupId - The ID of the friend group
518
+ * @returns The group name, or empty string if unavailable
519
+ *
520
+ * @remarks
521
+ * Returns the user-defined name for the specified friend group.
522
+ * Group names are created and managed by the user in the Steam client.
523
+ *
524
+ * @example
525
+ * ```typescript
526
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
527
+ * if (groupId !== INVALID_FRIENDS_GROUP_ID) {
528
+ * const name = steam.friends.getFriendsGroupName(groupId);
529
+ * console.log(`First group is named: ${name}`);
530
+ * }
531
+ * ```
532
+ *
533
+ * @see {@link getFriendsGroupIDByIndex}
534
+ * @see {@link getFriendsGroupMembersCount}
535
+ */
536
+ getFriendsGroupName(groupId: FriendsGroupID_t): string;
537
+ /**
538
+ * Gets the number of members in a friend group
539
+ *
540
+ * @param groupId - The ID of the friend group
541
+ * @returns The number of friends in the group, or 0 if unavailable
542
+ *
543
+ * @remarks
544
+ * Returns how many friends are assigned to the specified group.
545
+ * Use this with {@link getFriendsGroupMembersList} to retrieve the actual members.
546
+ *
547
+ * @example
548
+ * ```typescript
549
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
550
+ * const memberCount = steam.friends.getFriendsGroupMembersCount(groupId);
551
+ * console.log(`Group has ${memberCount} members`);
552
+ * ```
553
+ *
554
+ * @see {@link getFriendsGroupMembersList}
555
+ * @see {@link getFriendsGroupName}
556
+ */
557
+ getFriendsGroupMembersCount(groupId: FriendsGroupID_t): number;
558
+ /**
559
+ * Gets the list of Steam IDs for all members in a friend group
560
+ *
561
+ * @param groupId - The ID of the friend group
562
+ * @returns Array of Steam IDs (as strings) of friends in the group
563
+ *
564
+ * @remarks
565
+ * Returns an array containing the Steam ID of each friend assigned to this group.
566
+ * The array will be empty if the group has no members or if an error occurs.
567
+ *
568
+ * This method allocates memory for the maximum possible members and then
569
+ * populates it with the actual members. The returned array only contains
570
+ * the actual members, not the full allocated buffer.
571
+ *
572
+ * @example
573
+ * ```typescript
574
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
575
+ * const groupName = steam.friends.getFriendsGroupName(groupId);
576
+ * const members = steam.friends.getFriendsGroupMembersList(groupId);
577
+ *
578
+ * console.log(`Group "${groupName}" has ${members.length} members:`);
579
+ * members.forEach(steamId => {
580
+ * const name = steam.friends.getFriendPersonaName(steamId);
581
+ * console.log(` - ${name} (${steamId})`);
582
+ * });
583
+ * ```
584
+ *
585
+ * @see {@link getFriendsGroupMembersCount}
586
+ * @see {@link getFriendsGroupName}
587
+ */
588
+ getFriendsGroupMembersList(groupId: FriendsGroupID_t): string[];
589
+ /**
590
+ * Gets the number of users the current user has recently played with
591
+ *
592
+ * @returns The number of coplay friends, or 0 if unavailable
593
+ *
594
+ * @remarks
595
+ * "Coplay" refers to users you've recently been in multiplayer games with.
596
+ * Steam tracks these relationships automatically when you play games together.
597
+ *
598
+ * Use this with {@link getCoplayFriend} to iterate through all coplay friends.
599
+ *
600
+ * @example
601
+ * ```typescript
602
+ * const coplayCount = steam.friends.getCoplayFriendCount();
603
+ * console.log(`You've recently played with ${coplayCount} users`);
604
+ *
605
+ * for (let i = 0; i < coplayCount; i++) {
606
+ * const steamId = steam.friends.getCoplayFriend(i);
607
+ * const name = steam.friends.getFriendPersonaName(steamId);
608
+ * const time = steam.friends.getFriendCoplayTime(steamId);
609
+ * console.log(`Played with ${name} at ${new Date(time * 1000)}`);
610
+ * }
611
+ * ```
612
+ *
613
+ * @see {@link getCoplayFriend}
614
+ * @see {@link getFriendCoplayTime}
615
+ * @see {@link getFriendCoplayGame}
616
+ */
617
+ getCoplayFriendCount(): number;
618
+ /**
619
+ * Gets a coplay friend's Steam ID by their index
620
+ *
621
+ * @param index - Zero-based index of the coplay friend (0 to {@link getCoplayFriendCount}() - 1)
622
+ * @returns The friend's Steam ID as a string, or empty string if the index is invalid
623
+ *
624
+ * @remarks
625
+ * Use this method to iterate through all users you've recently played with:
626
+ * 1. Call {@link getCoplayFriendCount} to get the total number
627
+ * 2. Loop from 0 to count-1 calling this method to get each Steam ID
628
+ * 3. Use the returned ID with {@link getFriendCoplayTime} and {@link getFriendCoplayGame}
629
+ *
630
+ * @example
631
+ * ```typescript
632
+ * const count = steam.friends.getCoplayFriendCount();
633
+ * for (let i = 0; i < count; i++) {
634
+ * const steamId = steam.friends.getCoplayFriend(i);
635
+ * if (steamId) {
636
+ * const name = steam.friends.getFriendPersonaName(steamId);
637
+ * const appId = steam.friends.getFriendCoplayGame(steamId);
638
+ * console.log(`Played with ${name} in app ${appId}`);
639
+ * }
640
+ * }
641
+ * ```
642
+ *
643
+ * @see {@link getCoplayFriendCount}
644
+ * @see {@link getFriendCoplayTime}
645
+ */
646
+ getCoplayFriend(index: number): string;
647
+ /**
648
+ * Gets the last time you played with a specific user
649
+ *
650
+ * @param steamId - The friend's Steam ID as a string
651
+ * @returns Unix timestamp of when you last played together, or 0 if never/unavailable
652
+ *
653
+ * @remarks
654
+ * Returns the Unix timestamp (seconds since January 1, 1970) of the most recent
655
+ * time you were in a multiplayer game with this user.
656
+ *
657
+ * Returns 0 if:
658
+ * - You've never played with this user
659
+ * - The information is not available
660
+ * - The Steam API is not initialized
661
+ *
662
+ * @example
663
+ * ```typescript
664
+ * const steamId = steam.friends.getCoplayFriend(0);
665
+ * const timestamp = steam.friends.getFriendCoplayTime(steamId);
666
+ *
667
+ * if (timestamp > 0) {
668
+ * const date = new Date(timestamp * 1000);
669
+ * console.log(`Last played together on: ${date.toLocaleDateString()}`);
670
+ * }
671
+ * ```
672
+ *
673
+ * @see {@link getCoplayFriend}
674
+ * @see {@link getFriendCoplayGame}
675
+ */
676
+ getFriendCoplayTime(steamId: string): number;
677
+ /**
678
+ * Gets the App ID of the game you last played with a specific user
679
+ *
680
+ * @param steamId - The friend's Steam ID as a string
681
+ * @returns The Steam App ID of the game, or 0 if never/unavailable
682
+ *
683
+ * @remarks
684
+ * Returns the Steam App ID of the game you most recently played together with this user.
685
+ *
686
+ * Returns 0 if:
687
+ * - You've never played with this user
688
+ * - The information is not available
689
+ * - The Steam API is not initialized
690
+ *
691
+ * @example
692
+ * ```typescript
693
+ * const count = steam.friends.getCoplayFriendCount();
694
+ * for (let i = 0; i < count; i++) {
695
+ * const steamId = steam.friends.getCoplayFriend(i);
696
+ * const name = steam.friends.getFriendPersonaName(steamId);
697
+ * const appId = steam.friends.getFriendCoplayGame(steamId);
698
+ * const time = steam.friends.getFriendCoplayTime(steamId);
699
+ *
700
+ * console.log(`Played with ${name} in App ${appId}`);
701
+ * console.log(`Last played: ${new Date(time * 1000).toLocaleDateString()}`);
702
+ * }
703
+ * ```
704
+ *
705
+ * @example Get all coplay information
706
+ * ```typescript
707
+ * function getAllCoplayInfo(): CoplayFriendInfo[] {
708
+ * const count = steam.friends.getCoplayFriendCount();
709
+ * const coplayFriends: CoplayFriendInfo[] = [];
710
+ *
711
+ * for (let i = 0; i < count; i++) {
712
+ * const steamId = steam.friends.getCoplayFriend(i);
713
+ * if (steamId) {
714
+ * coplayFriends.push({
715
+ * steamId,
716
+ * coplayTime: steam.friends.getFriendCoplayTime(steamId),
717
+ * coplayGame: steam.friends.getFriendCoplayGame(steamId)
718
+ * });
719
+ * }
720
+ * }
721
+ *
722
+ * return coplayFriends;
723
+ * }
724
+ * ```
725
+ *
726
+ * @see {@link getCoplayFriend}
727
+ * @see {@link getFriendCoplayTime}
728
+ * @see {@link CoplayFriendInfo}
729
+ */
730
+ getFriendCoplayGame(steamId: string): number;
364
731
  }
365
732
  //# sourceMappingURL=SteamFriendsManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamFriendsManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamFriendsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACf,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,mBAAmB;IAC9B,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAqB;IAE1C,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAe;IAE9B,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAM5B;IAEH;;;;;OAKG;gBACS,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IAKpE;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,MAAM;IAqBxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,eAAe,IAAI,aAAa;IAqBhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,WAAW,GAAE,YAAqC,GAAG,MAAM;IAqB1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,YAAqC,GAAG,MAAM,GAAG,IAAI;IA2BlG;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqB7C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAqBrD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAqB3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,aAAa,CAAC,WAAW,GAAE,YAAqC,GAAG,UAAU,EAAE;IAoB/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;CAyC5D"}
1
+ {"version":3,"file":"SteamFriendsManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamFriendsManager.ts"],"names":[],"mappings":"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"}