steamworks-ffi-node 0.5.1 → 0.5.2

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.
@@ -589,6 +589,607 @@ class SteamFriendsManager {
589
589
  return null;
590
590
  }
591
591
  }
592
+ // ========================================
593
+ // Avatar Functions
594
+ // ========================================
595
+ /**
596
+ * Gets the handle for a friend's small (32x32) avatar image
597
+ *
598
+ * @param steamId - The friend's Steam ID as a string
599
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
600
+ *
601
+ * @remarks
602
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
603
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
604
+ *
605
+ * Small avatars are 32x32 pixels and are suitable for:
606
+ * - Friend list thumbnails
607
+ * - Chat message icons
608
+ * - Compact UI elements
609
+ *
610
+ * The avatar image is cached by Steam. If it returns 0, the image might
611
+ * still be loading. You can try again after a short delay.
612
+ *
613
+ * @example
614
+ * ```typescript
615
+ * const avatarHandle = steam.friends.getSmallFriendAvatar(friendSteamId);
616
+ * if (avatarHandle > 0) {
617
+ * console.log(`Small avatar handle: ${avatarHandle}`);
618
+ * // Use with ISteamUtils to get actual image data
619
+ * }
620
+ * ```
621
+ *
622
+ * @see {@link getMediumFriendAvatar}
623
+ * @see {@link getLargeFriendAvatar}
624
+ */
625
+ getSmallFriendAvatar(steamId) {
626
+ if (!this.apiCore.isInitialized()) {
627
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
628
+ return 0;
629
+ }
630
+ const friendsInterface = this.apiCore.getFriendsInterface();
631
+ if (!friendsInterface) {
632
+ console.warn('[Steamworks] WARNING: Friends interface not available');
633
+ return 0;
634
+ }
635
+ try {
636
+ const handle = this.libraryLoader.SteamAPI_ISteamFriends_GetSmallFriendAvatar(friendsInterface, BigInt(steamId));
637
+ return handle;
638
+ }
639
+ catch (error) {
640
+ console.error(`[Steamworks] Error getting small friend avatar for ${steamId}:`, error);
641
+ return 0;
642
+ }
643
+ }
644
+ /**
645
+ * Gets the handle for a friend's medium (64x64) avatar image
646
+ *
647
+ * @param steamId - The friend's Steam ID as a string
648
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
649
+ *
650
+ * @remarks
651
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
652
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
653
+ *
654
+ * Medium avatars are 64x64 pixels and are suitable for:
655
+ * - User profiles
656
+ * - Game lobby player lists
657
+ * - Standard UI elements
658
+ *
659
+ * The avatar image is cached by Steam. If it returns 0, the image might
660
+ * still be loading. You can try again after a short delay.
661
+ *
662
+ * @example
663
+ * ```typescript
664
+ * const avatarHandle = steam.friends.getMediumFriendAvatar(friendSteamId);
665
+ * if (avatarHandle > 0) {
666
+ * console.log(`Medium avatar handle: ${avatarHandle}`);
667
+ * // Use with ISteamUtils to get actual image data
668
+ * }
669
+ * ```
670
+ *
671
+ * @see {@link getSmallFriendAvatar}
672
+ * @see {@link getLargeFriendAvatar}
673
+ */
674
+ getMediumFriendAvatar(steamId) {
675
+ if (!this.apiCore.isInitialized()) {
676
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
677
+ return 0;
678
+ }
679
+ const friendsInterface = this.apiCore.getFriendsInterface();
680
+ if (!friendsInterface) {
681
+ console.warn('[Steamworks] WARNING: Friends interface not available');
682
+ return 0;
683
+ }
684
+ try {
685
+ const handle = this.libraryLoader.SteamAPI_ISteamFriends_GetMediumFriendAvatar(friendsInterface, BigInt(steamId));
686
+ return handle;
687
+ }
688
+ catch (error) {
689
+ console.error(`[Steamworks] Error getting medium friend avatar for ${steamId}:`, error);
690
+ return 0;
691
+ }
692
+ }
693
+ /**
694
+ * Gets the handle for a friend's large (184x184) avatar image
695
+ *
696
+ * @param steamId - The friend's Steam ID as a string
697
+ * @returns Image handle for use with ISteamUtils, or 0 if unavailable
698
+ *
699
+ * @remarks
700
+ * This returns a handle that can be used with ISteamUtils::GetImageSize()
701
+ * and ISteamUtils::GetImageRGBA() to retrieve the actual image data.
702
+ *
703
+ * Large avatars are 184x184 pixels and are suitable for:
704
+ * - Detailed profile views
705
+ * - Full-screen overlays
706
+ * - High-resolution displays
707
+ *
708
+ * The avatar image is cached by Steam. If it returns 0, the image might
709
+ * still be loading. You can try again after a short delay.
710
+ *
711
+ * @example
712
+ * ```typescript
713
+ * const avatarHandle = steam.friends.getLargeFriendAvatar(friendSteamId);
714
+ * if (avatarHandle > 0) {
715
+ * console.log(`Large avatar handle: ${avatarHandle}`);
716
+ * // Use with ISteamUtils to get actual image data
717
+ * }
718
+ * ```
719
+ *
720
+ * @see {@link getSmallFriendAvatar}
721
+ * @see {@link getMediumFriendAvatar}
722
+ */
723
+ getLargeFriendAvatar(steamId) {
724
+ if (!this.apiCore.isInitialized()) {
725
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
726
+ return 0;
727
+ }
728
+ const friendsInterface = this.apiCore.getFriendsInterface();
729
+ if (!friendsInterface) {
730
+ console.warn('[Steamworks] WARNING: Friends interface not available');
731
+ return 0;
732
+ }
733
+ try {
734
+ const handle = this.libraryLoader.SteamAPI_ISteamFriends_GetLargeFriendAvatar(friendsInterface, BigInt(steamId));
735
+ return handle;
736
+ }
737
+ catch (error) {
738
+ console.error(`[Steamworks] Error getting large friend avatar for ${steamId}:`, error);
739
+ return 0;
740
+ }
741
+ }
742
+ // ========================================
743
+ // Friend Groups Functions
744
+ // ========================================
745
+ /**
746
+ * Gets the number of Steam friend groups (tags) the user has created
747
+ *
748
+ * @returns The number of friend groups, or 0 if unavailable
749
+ *
750
+ * @remarks
751
+ * Steam allows users to organize friends into custom groups (also called tags).
752
+ * This returns the total number of groups the current user has created.
753
+ *
754
+ * Use this with {@link getFriendsGroupIDByIndex} to iterate through all groups.
755
+ *
756
+ * @example
757
+ * ```typescript
758
+ * const groupCount = steam.friends.getFriendsGroupCount();
759
+ * console.log(`You have ${groupCount} friend groups`);
760
+ *
761
+ * for (let i = 0; i < groupCount; i++) {
762
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(i);
763
+ * const groupName = steam.friends.getFriendsGroupName(groupId);
764
+ * console.log(`Group ${i}: ${groupName}`);
765
+ * }
766
+ * ```
767
+ *
768
+ * @see {@link getFriendsGroupIDByIndex}
769
+ * @see {@link getFriendsGroupName}
770
+ */
771
+ getFriendsGroupCount() {
772
+ if (!this.apiCore.isInitialized()) {
773
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
774
+ return 0;
775
+ }
776
+ const friendsInterface = this.apiCore.getFriendsInterface();
777
+ if (!friendsInterface) {
778
+ console.warn('[Steamworks] WARNING: Friends interface not available');
779
+ return 0;
780
+ }
781
+ try {
782
+ const count = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendsGroupCount(friendsInterface);
783
+ return count;
784
+ }
785
+ catch (error) {
786
+ console.error('[Steamworks] Error getting friends group count:', error);
787
+ return 0;
788
+ }
789
+ }
790
+ /**
791
+ * Gets a friend group ID by its index
792
+ *
793
+ * @param index - Zero-based index of the group (0 to {@link getFriendsGroupCount}() - 1)
794
+ * @returns The group ID, or {@link INVALID_FRIENDS_GROUP_ID} if the index is invalid
795
+ *
796
+ * @remarks
797
+ * Use this method to iterate through all friend groups:
798
+ * 1. Call {@link getFriendsGroupCount} to get the total number of groups
799
+ * 2. Loop from 0 to count-1 calling this method to get each group ID
800
+ * 3. Use the returned ID with {@link getFriendsGroupName} and {@link getFriendsGroupMembersList}
801
+ *
802
+ * @example
803
+ * ```typescript
804
+ * const groupCount = steam.friends.getFriendsGroupCount();
805
+ * for (let i = 0; i < groupCount; i++) {
806
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(i);
807
+ * if (groupId !== INVALID_FRIENDS_GROUP_ID) {
808
+ * const name = steam.friends.getFriendsGroupName(groupId);
809
+ * const memberCount = steam.friends.getFriendsGroupMembersCount(groupId);
810
+ * console.log(`Group: ${name} (${memberCount} members)`);
811
+ * }
812
+ * }
813
+ * ```
814
+ *
815
+ * @see {@link getFriendsGroupCount}
816
+ * @see {@link getFriendsGroupName}
817
+ * @see {@link INVALID_FRIENDS_GROUP_ID}
818
+ */
819
+ getFriendsGroupIDByIndex(index) {
820
+ if (!this.apiCore.isInitialized()) {
821
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
822
+ return types_1.INVALID_FRIENDS_GROUP_ID;
823
+ }
824
+ const friendsInterface = this.apiCore.getFriendsInterface();
825
+ if (!friendsInterface) {
826
+ console.warn('[Steamworks] WARNING: Friends interface not available');
827
+ return types_1.INVALID_FRIENDS_GROUP_ID;
828
+ }
829
+ try {
830
+ const groupId = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(friendsInterface, index);
831
+ return groupId;
832
+ }
833
+ catch (error) {
834
+ console.error(`[Steamworks] Error getting friends group ID by index ${index}:`, error);
835
+ return types_1.INVALID_FRIENDS_GROUP_ID;
836
+ }
837
+ }
838
+ /**
839
+ * Gets the name of a friend group
840
+ *
841
+ * @param groupId - The ID of the friend group
842
+ * @returns The group name, or empty string if unavailable
843
+ *
844
+ * @remarks
845
+ * Returns the user-defined name for the specified friend group.
846
+ * Group names are created and managed by the user in the Steam client.
847
+ *
848
+ * @example
849
+ * ```typescript
850
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
851
+ * if (groupId !== INVALID_FRIENDS_GROUP_ID) {
852
+ * const name = steam.friends.getFriendsGroupName(groupId);
853
+ * console.log(`First group is named: ${name}`);
854
+ * }
855
+ * ```
856
+ *
857
+ * @see {@link getFriendsGroupIDByIndex}
858
+ * @see {@link getFriendsGroupMembersCount}
859
+ */
860
+ getFriendsGroupName(groupId) {
861
+ if (!this.apiCore.isInitialized()) {
862
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
863
+ return '';
864
+ }
865
+ const friendsInterface = this.apiCore.getFriendsInterface();
866
+ if (!friendsInterface) {
867
+ console.warn('[Steamworks] WARNING: Friends interface not available');
868
+ return '';
869
+ }
870
+ try {
871
+ const name = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendsGroupName(friendsInterface, groupId);
872
+ return name || '';
873
+ }
874
+ catch (error) {
875
+ console.error(`[Steamworks] Error getting friends group name for ${groupId}:`, error);
876
+ return '';
877
+ }
878
+ }
879
+ /**
880
+ * Gets the number of members in a friend group
881
+ *
882
+ * @param groupId - The ID of the friend group
883
+ * @returns The number of friends in the group, or 0 if unavailable
884
+ *
885
+ * @remarks
886
+ * Returns how many friends are assigned to the specified group.
887
+ * Use this with {@link getFriendsGroupMembersList} to retrieve the actual members.
888
+ *
889
+ * @example
890
+ * ```typescript
891
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
892
+ * const memberCount = steam.friends.getFriendsGroupMembersCount(groupId);
893
+ * console.log(`Group has ${memberCount} members`);
894
+ * ```
895
+ *
896
+ * @see {@link getFriendsGroupMembersList}
897
+ * @see {@link getFriendsGroupName}
898
+ */
899
+ getFriendsGroupMembersCount(groupId) {
900
+ if (!this.apiCore.isInitialized()) {
901
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
902
+ return 0;
903
+ }
904
+ const friendsInterface = this.apiCore.getFriendsInterface();
905
+ if (!friendsInterface) {
906
+ console.warn('[Steamworks] WARNING: Friends interface not available');
907
+ return 0;
908
+ }
909
+ try {
910
+ const count = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(friendsInterface, groupId);
911
+ return count;
912
+ }
913
+ catch (error) {
914
+ console.error(`[Steamworks] Error getting friends group members count for ${groupId}:`, error);
915
+ return 0;
916
+ }
917
+ }
918
+ /**
919
+ * Gets the list of Steam IDs for all members in a friend group
920
+ *
921
+ * @param groupId - The ID of the friend group
922
+ * @returns Array of Steam IDs (as strings) of friends in the group
923
+ *
924
+ * @remarks
925
+ * Returns an array containing the Steam ID of each friend assigned to this group.
926
+ * The array will be empty if the group has no members or if an error occurs.
927
+ *
928
+ * This method allocates memory for the maximum possible members and then
929
+ * populates it with the actual members. The returned array only contains
930
+ * the actual members, not the full allocated buffer.
931
+ *
932
+ * @example
933
+ * ```typescript
934
+ * const groupId = steam.friends.getFriendsGroupIDByIndex(0);
935
+ * const groupName = steam.friends.getFriendsGroupName(groupId);
936
+ * const members = steam.friends.getFriendsGroupMembersList(groupId);
937
+ *
938
+ * console.log(`Group "${groupName}" has ${members.length} members:`);
939
+ * members.forEach(steamId => {
940
+ * const name = steam.friends.getFriendPersonaName(steamId);
941
+ * console.log(` - ${name} (${steamId})`);
942
+ * });
943
+ * ```
944
+ *
945
+ * @see {@link getFriendsGroupMembersCount}
946
+ * @see {@link getFriendsGroupName}
947
+ */
948
+ getFriendsGroupMembersList(groupId) {
949
+ if (!this.apiCore.isInitialized()) {
950
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
951
+ return [];
952
+ }
953
+ const friendsInterface = this.apiCore.getFriendsInterface();
954
+ if (!friendsInterface) {
955
+ console.warn('[Steamworks] WARNING: Friends interface not available');
956
+ return [];
957
+ }
958
+ try {
959
+ const memberCount = this.getFriendsGroupMembersCount(groupId);
960
+ if (memberCount === 0) {
961
+ return [];
962
+ }
963
+ const membersPtr = koffi.alloc('uint64', memberCount);
964
+ this.libraryLoader.SteamAPI_ISteamFriends_GetFriendsGroupMembersList(friendsInterface, groupId, membersPtr, memberCount);
965
+ const membersArray = koffi.decode(membersPtr, koffi.array('uint64', memberCount));
966
+ return membersArray.map((id) => id.toString());
967
+ }
968
+ catch (error) {
969
+ console.error(`[Steamworks] Error getting friends group members list for ${groupId}:`, error);
970
+ return [];
971
+ }
972
+ }
973
+ // ========================================
974
+ // Coplay (Recently Played With) Functions
975
+ // ========================================
976
+ /**
977
+ * Gets the number of users the current user has recently played with
978
+ *
979
+ * @returns The number of coplay friends, or 0 if unavailable
980
+ *
981
+ * @remarks
982
+ * "Coplay" refers to users you've recently been in multiplayer games with.
983
+ * Steam tracks these relationships automatically when you play games together.
984
+ *
985
+ * Use this with {@link getCoplayFriend} to iterate through all coplay friends.
986
+ *
987
+ * @example
988
+ * ```typescript
989
+ * const coplayCount = steam.friends.getCoplayFriendCount();
990
+ * console.log(`You've recently played with ${coplayCount} users`);
991
+ *
992
+ * for (let i = 0; i < coplayCount; i++) {
993
+ * const steamId = steam.friends.getCoplayFriend(i);
994
+ * const name = steam.friends.getFriendPersonaName(steamId);
995
+ * const time = steam.friends.getFriendCoplayTime(steamId);
996
+ * console.log(`Played with ${name} at ${new Date(time * 1000)}`);
997
+ * }
998
+ * ```
999
+ *
1000
+ * @see {@link getCoplayFriend}
1001
+ * @see {@link getFriendCoplayTime}
1002
+ * @see {@link getFriendCoplayGame}
1003
+ */
1004
+ getCoplayFriendCount() {
1005
+ if (!this.apiCore.isInitialized()) {
1006
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
1007
+ return 0;
1008
+ }
1009
+ const friendsInterface = this.apiCore.getFriendsInterface();
1010
+ if (!friendsInterface) {
1011
+ console.warn('[Steamworks] WARNING: Friends interface not available');
1012
+ return 0;
1013
+ }
1014
+ try {
1015
+ const count = this.libraryLoader.SteamAPI_ISteamFriends_GetCoplayFriendCount(friendsInterface);
1016
+ return count;
1017
+ }
1018
+ catch (error) {
1019
+ console.error('[Steamworks] Error getting coplay friend count:', error);
1020
+ return 0;
1021
+ }
1022
+ }
1023
+ /**
1024
+ * Gets a coplay friend's Steam ID by their index
1025
+ *
1026
+ * @param index - Zero-based index of the coplay friend (0 to {@link getCoplayFriendCount}() - 1)
1027
+ * @returns The friend's Steam ID as a string, or empty string if the index is invalid
1028
+ *
1029
+ * @remarks
1030
+ * Use this method to iterate through all users you've recently played with:
1031
+ * 1. Call {@link getCoplayFriendCount} to get the total number
1032
+ * 2. Loop from 0 to count-1 calling this method to get each Steam ID
1033
+ * 3. Use the returned ID with {@link getFriendCoplayTime} and {@link getFriendCoplayGame}
1034
+ *
1035
+ * @example
1036
+ * ```typescript
1037
+ * const count = steam.friends.getCoplayFriendCount();
1038
+ * for (let i = 0; i < count; i++) {
1039
+ * const steamId = steam.friends.getCoplayFriend(i);
1040
+ * if (steamId) {
1041
+ * const name = steam.friends.getFriendPersonaName(steamId);
1042
+ * const appId = steam.friends.getFriendCoplayGame(steamId);
1043
+ * console.log(`Played with ${name} in app ${appId}`);
1044
+ * }
1045
+ * }
1046
+ * ```
1047
+ *
1048
+ * @see {@link getCoplayFriendCount}
1049
+ * @see {@link getFriendCoplayTime}
1050
+ */
1051
+ getCoplayFriend(index) {
1052
+ if (!this.apiCore.isInitialized()) {
1053
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
1054
+ return '';
1055
+ }
1056
+ const friendsInterface = this.apiCore.getFriendsInterface();
1057
+ if (!friendsInterface) {
1058
+ console.warn('[Steamworks] WARNING: Friends interface not available');
1059
+ return '';
1060
+ }
1061
+ try {
1062
+ const steamId = this.libraryLoader.SteamAPI_ISteamFriends_GetCoplayFriend(friendsInterface, index);
1063
+ if (steamId && steamId !== 0n) {
1064
+ return steamId.toString();
1065
+ }
1066
+ return '';
1067
+ }
1068
+ catch (error) {
1069
+ console.error(`[Steamworks] Error getting coplay friend by index ${index}:`, error);
1070
+ return '';
1071
+ }
1072
+ }
1073
+ /**
1074
+ * Gets the last time you played with a specific user
1075
+ *
1076
+ * @param steamId - The friend's Steam ID as a string
1077
+ * @returns Unix timestamp of when you last played together, or 0 if never/unavailable
1078
+ *
1079
+ * @remarks
1080
+ * Returns the Unix timestamp (seconds since January 1, 1970) of the most recent
1081
+ * time you were in a multiplayer game with this user.
1082
+ *
1083
+ * Returns 0 if:
1084
+ * - You've never played with this user
1085
+ * - The information is not available
1086
+ * - The Steam API is not initialized
1087
+ *
1088
+ * @example
1089
+ * ```typescript
1090
+ * const steamId = steam.friends.getCoplayFriend(0);
1091
+ * const timestamp = steam.friends.getFriendCoplayTime(steamId);
1092
+ *
1093
+ * if (timestamp > 0) {
1094
+ * const date = new Date(timestamp * 1000);
1095
+ * console.log(`Last played together on: ${date.toLocaleDateString()}`);
1096
+ * }
1097
+ * ```
1098
+ *
1099
+ * @see {@link getCoplayFriend}
1100
+ * @see {@link getFriendCoplayGame}
1101
+ */
1102
+ getFriendCoplayTime(steamId) {
1103
+ if (!this.apiCore.isInitialized()) {
1104
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
1105
+ return 0;
1106
+ }
1107
+ const friendsInterface = this.apiCore.getFriendsInterface();
1108
+ if (!friendsInterface) {
1109
+ console.warn('[Steamworks] WARNING: Friends interface not available');
1110
+ return 0;
1111
+ }
1112
+ try {
1113
+ const time = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendCoplayTime(friendsInterface, BigInt(steamId));
1114
+ return time;
1115
+ }
1116
+ catch (error) {
1117
+ console.error(`[Steamworks] Error getting friend coplay time for ${steamId}:`, error);
1118
+ return 0;
1119
+ }
1120
+ }
1121
+ /**
1122
+ * Gets the App ID of the game you last played with a specific user
1123
+ *
1124
+ * @param steamId - The friend's Steam ID as a string
1125
+ * @returns The Steam App ID of the game, or 0 if never/unavailable
1126
+ *
1127
+ * @remarks
1128
+ * Returns the Steam App ID of the game you most recently played together with this user.
1129
+ *
1130
+ * Returns 0 if:
1131
+ * - You've never played with this user
1132
+ * - The information is not available
1133
+ * - The Steam API is not initialized
1134
+ *
1135
+ * @example
1136
+ * ```typescript
1137
+ * const count = steam.friends.getCoplayFriendCount();
1138
+ * for (let i = 0; i < count; i++) {
1139
+ * const steamId = steam.friends.getCoplayFriend(i);
1140
+ * const name = steam.friends.getFriendPersonaName(steamId);
1141
+ * const appId = steam.friends.getFriendCoplayGame(steamId);
1142
+ * const time = steam.friends.getFriendCoplayTime(steamId);
1143
+ *
1144
+ * console.log(`Played with ${name} in App ${appId}`);
1145
+ * console.log(`Last played: ${new Date(time * 1000).toLocaleDateString()}`);
1146
+ * }
1147
+ * ```
1148
+ *
1149
+ * @example Get all coplay information
1150
+ * ```typescript
1151
+ * function getAllCoplayInfo(): CoplayFriendInfo[] {
1152
+ * const count = steam.friends.getCoplayFriendCount();
1153
+ * const coplayFriends: CoplayFriendInfo[] = [];
1154
+ *
1155
+ * for (let i = 0; i < count; i++) {
1156
+ * const steamId = steam.friends.getCoplayFriend(i);
1157
+ * if (steamId) {
1158
+ * coplayFriends.push({
1159
+ * steamId,
1160
+ * coplayTime: steam.friends.getFriendCoplayTime(steamId),
1161
+ * coplayGame: steam.friends.getFriendCoplayGame(steamId)
1162
+ * });
1163
+ * }
1164
+ * }
1165
+ *
1166
+ * return coplayFriends;
1167
+ * }
1168
+ * ```
1169
+ *
1170
+ * @see {@link getCoplayFriend}
1171
+ * @see {@link getFriendCoplayTime}
1172
+ * @see {@link CoplayFriendInfo}
1173
+ */
1174
+ getFriendCoplayGame(steamId) {
1175
+ if (!this.apiCore.isInitialized()) {
1176
+ console.warn('[Steamworks] WARNING: Steam API not initialized');
1177
+ return 0;
1178
+ }
1179
+ const friendsInterface = this.apiCore.getFriendsInterface();
1180
+ if (!friendsInterface) {
1181
+ console.warn('[Steamworks] WARNING: Friends interface not available');
1182
+ return 0;
1183
+ }
1184
+ try {
1185
+ const appId = this.libraryLoader.SteamAPI_ISteamFriends_GetFriendCoplayGame(friendsInterface, BigInt(steamId));
1186
+ return appId;
1187
+ }
1188
+ catch (error) {
1189
+ console.error(`[Steamworks] Error getting friend coplay game for ${steamId}:`, error);
1190
+ return 0;
1191
+ }
1192
+ }
592
1193
  }
593
1194
  exports.SteamFriendsManager = SteamFriendsManager;
594
1195
  /** FriendGameInfo_t struct for game information */
@@ -1 +1 @@
1
- {"version":3,"file":"SteamFriendsManager.js","sourceRoot":"","sources":["../../src/internal/SteamFriendsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SteamFriendsManager.js","sourceRoot":"","sources":["../../src/internal/SteamFriendsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAG/B,oCASkB;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAa,mBAAmB;IAgB9B;;;;;OAKG;IACH,YAAY,aAAiC,EAAE,OAAqB;QAClE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,qCAAqC,CAAC,gBAAgB,CAAC,CAAC;YACxF,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,cAA4B,oBAAY,CAAC,SAAS;QAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,qCAAqC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACtG,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,gBAAgB,CAAC,KAAa,EAAE,cAA4B,oBAAY,CAAC,SAAS;QAChF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,uCAAuC,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAEjH,IAAI,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/G,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,qBAAqB,CAAC,OAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjH,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uDAAuD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACxF,OAAO,qBAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,qBAAqB,CAAC,OAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,2BAAmB,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,2BAAmB,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACxH,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,2BAAmB,CAAC,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,aAAa,CAAC,cAA4B,oBAAY,CAAC,SAAS;QAC9D,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO;oBACP,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;oBAC/C,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;oBACjD,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAChE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,0CAA0C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/G,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,0CAA0C,CAC7E,gBAAgB,EAChB,MAAM,CAAC,OAAO,CAAC,EACf,WAAW,CACZ,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAEjF,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;oBAClD,MAAM,MAAM,GAAmB;wBAC7B,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;wBACpC,MAAM,EAAE,QAAQ,CAAC,UAAU;wBAC3B,QAAQ,EAAE,QAAQ,CAAC,YAAY;wBAC/B,SAAS,EAAE,QAAQ,CAAC,aAAa;wBACjC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE;qBACjD,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,qBAAqB,CAAC,OAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAClH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uDAAuD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,0BAA0B;IAC1B,2CAA2C;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,CAAC;YAC/F,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,wBAAwB,CAAC,KAAa;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,gCAAwB,CAAC;QAClC,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,gCAAwB,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,+CAA+C,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAC5G,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wDAAwD,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,gCAAwB,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,OAAyB;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,0CAA0C,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACtG,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,2BAA2B,CAAC,OAAyB;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,kDAAkD,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC/G,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8DAA8D,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/F,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,0BAA0B,CAAC,OAAyB;QAClD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,iDAAiD,CAClE,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,WAAW,CACZ,CAAC;YAEF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6DAA6D,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9F,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,0CAA0C;IAC1C,2CAA2C;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,CAAC;YAC/F,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sCAAsC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAEnG,IAAI,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,0CAA0C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9G,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,0CAA0C,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/G,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;;AA5pCH,kDA6pCC;AAtpCC,mDAAmD;AACpC,oCAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACjE,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAC"}
@@ -83,6 +83,18 @@ export declare class SteamLibraryLoader {
83
83
  SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog: koffi.KoffiFunction;
84
84
  SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog: koffi.KoffiFunction;
85
85
  SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString: koffi.KoffiFunction;
86
+ SteamAPI_ISteamFriends_GetSmallFriendAvatar: koffi.KoffiFunction;
87
+ SteamAPI_ISteamFriends_GetMediumFriendAvatar: koffi.KoffiFunction;
88
+ SteamAPI_ISteamFriends_GetLargeFriendAvatar: koffi.KoffiFunction;
89
+ SteamAPI_ISteamFriends_GetFriendsGroupCount: koffi.KoffiFunction;
90
+ SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex: koffi.KoffiFunction;
91
+ SteamAPI_ISteamFriends_GetFriendsGroupName: koffi.KoffiFunction;
92
+ SteamAPI_ISteamFriends_GetFriendsGroupMembersCount: koffi.KoffiFunction;
93
+ SteamAPI_ISteamFriends_GetFriendsGroupMembersList: koffi.KoffiFunction;
94
+ SteamAPI_ISteamFriends_GetCoplayFriendCount: koffi.KoffiFunction;
95
+ SteamAPI_ISteamFriends_GetCoplayFriend: koffi.KoffiFunction;
96
+ SteamAPI_ISteamFriends_GetFriendCoplayTime: koffi.KoffiFunction;
97
+ SteamAPI_ISteamFriends_GetFriendCoplayGame: koffi.KoffiFunction;
86
98
  /**
87
99
  * Get platform-specific Steam library path
88
100
  */