@decky/ui 4.15.0 → 4.16.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.
- package/dist/components/Dialog.js +1 -1
- package/dist/components/Dropdown.d.ts +2 -2
- package/dist/components/FooterLegend.d.ts +8 -2
- package/dist/components/FooterLegend.js +7 -0
- package/dist/components/Menu.d.ts +5 -9
- package/dist/components/Modal.d.ts +3 -2
- package/dist/globals/index.d.ts +25 -2
- package/dist/globals/index.js +1 -2
- package/dist/globals/shared/cm.d.ts +112 -0
- package/dist/globals/shared/enums.d.ts +80 -0
- package/dist/globals/shared/enums.js +85 -0
- package/dist/globals/shared/history.d.ts +12 -0
- package/dist/globals/shared/history.js +1 -0
- package/dist/globals/shared/index.d.ts +5 -0
- package/dist/globals/shared/index.js +5 -0
- package/dist/globals/shared/interfaces.d.ts +54 -0
- package/dist/globals/shared/interfaces.js +1 -0
- package/dist/globals/shared/navigation.d.ts +14 -0
- package/dist/globals/shared/navigation.js +10 -0
- package/dist/globals/shared/steamid.d.ts +36 -0
- package/dist/globals/shared/steamid.js +15 -0
- package/dist/globals/shared/storage.d.ts +27 -0
- package/dist/globals/shared/storage.js +11 -0
- package/dist/globals/steam-client/App.d.ts +1 -1
- package/dist/globals/steam-client/Auth.d.ts +1 -1
- package/dist/globals/steam-client/ClientNotifications.d.ts +1 -1
- package/dist/globals/steam-client/Overlay.d.ts +2 -1
- package/dist/globals/steam-client/Screenshots.d.ts +1 -1
- package/dist/globals/steam-client/Settings.d.ts +1 -1
- package/dist/globals/steam-client/SharedConnection.d.ts +2 -1
- package/dist/globals/steam-client/UI.d.ts +14 -3
- package/dist/globals/steam-client/UI.js +11 -0
- package/dist/globals/steam-client/User.d.ts +13 -0
- package/dist/globals/steam-client/User.js +7 -0
- package/dist/globals/steam-client/WebChat.d.ts +3 -2
- package/dist/globals/steam-client/shared.d.ts +0 -29
- package/dist/globals/steam-client/shared.js +0 -24
- package/dist/globals/stores/app.d.ts +35 -0
- package/dist/globals/stores/app.js +1 -0
- package/dist/globals/stores/appdetailsstore.d.ts +86 -0
- package/dist/globals/stores/appdetailsstore.js +1 -0
- package/dist/globals/stores/appinfostore.d.ts +56 -0
- package/dist/globals/stores/appinfostore.js +1 -0
- package/dist/globals/stores/appstore.d.ts +77 -0
- package/dist/globals/stores/appstore.js +1 -0
- package/dist/globals/stores/badgestore.d.ts +52 -0
- package/dist/globals/stores/badgestore.js +1 -0
- package/dist/globals/stores/collectionstore.d.ts +313 -0
- package/dist/globals/stores/collectionstore.js +143 -0
- package/dist/globals/stores/consolestore.d.ts +20 -0
- package/dist/globals/stores/consolestore.js +1 -0
- package/dist/globals/stores/focusnavcontroller.d.ts +383 -0
- package/dist/globals/stores/focusnavcontroller.js +29 -0
- package/dist/globals/stores/friendstore/clanstore.d.ts +75 -0
- package/dist/globals/stores/friendstore/clanstore.js +19 -0
- package/dist/globals/stores/friendstore/friendchat.d.ts +374 -0
- package/dist/globals/stores/friendstore/friendchat.js +56 -0
- package/dist/globals/stores/friendstore/friendgroupstore.d.ts +98 -0
- package/dist/globals/stores/friendstore/friendgroupstore.js +8 -0
- package/dist/globals/stores/friendstore/friendingamenotificationstore.d.ts +2 -0
- package/dist/globals/stores/friendstore/friendingamenotificationstore.js +1 -0
- package/dist/globals/stores/friendstore/friendslistfavoritesstore.d.ts +22 -0
- package/dist/globals/stores/friendstore/friendslistfavoritesstore.js +1 -0
- package/dist/globals/stores/friendstore/friendsuifriendstore.d.ts +125 -0
- package/dist/globals/stores/friendstore/friendsuifriendstore.js +1 -0
- package/dist/globals/stores/friendstore/index.d.ts +25 -0
- package/dist/globals/stores/friendstore/index.js +1 -0
- package/dist/globals/stores/friendstore/shared.d.ts +207 -0
- package/dist/globals/stores/friendstore/shared.js +41 -0
- package/dist/globals/stores/gamerecordingstore.d.ts +263 -0
- package/dist/globals/stores/gamerecordingstore.js +1 -0
- package/dist/globals/stores/index.d.ts +18 -0
- package/dist/globals/stores/index.js +18 -0
- package/dist/globals/stores/libraryuistore.d.ts +179 -0
- package/dist/globals/stores/libraryuistore.js +56 -0
- package/dist/globals/stores/localizationmanager.d.ts +18 -0
- package/dist/globals/stores/localizationmanager.js +1 -0
- package/dist/globals/stores/mainwindowbrowsermanager.d.ts +62 -0
- package/dist/globals/stores/mainwindowbrowsermanager.js +1 -0
- package/dist/globals/stores/notificationstore.d.ts +242 -0
- package/dist/globals/stores/notificationstore.js +20 -0
- package/dist/globals/stores/popupmanager.d.ts +128 -0
- package/dist/globals/stores/popupmanager.js +1 -0
- package/dist/globals/stores/securitystore.d.ts +35 -0
- package/dist/globals/stores/securitystore.js +1 -0
- package/dist/globals/stores/settingsstore.d.ts +86 -0
- package/dist/globals/stores/settingsstore.js +19 -0
- package/dist/globals/stores/steamuistore/gamepadbrowserview.d.ts +143 -0
- package/dist/globals/stores/steamuistore/gamepadbrowserview.js +9 -0
- package/dist/globals/stores/steamuistore/gamepaduiaudio.d.ts +36 -0
- package/dist/globals/stores/steamuistore/gamepaduiaudio.js +1 -0
- package/dist/globals/stores/steamuistore/index.d.ts +129 -0
- package/dist/globals/stores/steamuistore/index.js +11 -0
- package/dist/globals/stores/steamuistore/menu.d.ts +39 -0
- package/dist/globals/stores/steamuistore/menu.js +19 -0
- package/dist/globals/stores/steamuistore/window.d.ts +206 -0
- package/dist/globals/stores/steamuistore/window.js +6 -0
- package/dist/globals/stores/storeitemcache.d.ts +319 -0
- package/dist/globals/stores/storeitemcache.js +17 -0
- package/dist/globals/stores/urlstore.d.ts +57 -0
- package/dist/globals/stores/urlstore.js +1 -0
- package/dist/modules/Router.d.ts +5 -58
- package/dist/modules/Router.js +2 -20
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/react/treepatcher.js +7 -7
- package/package.json +1 -1
- package/src/components/Dialog.ts +1 -1
- package/src/components/Dropdown.tsx +2 -2
- package/src/components/FooterLegend.ts +10 -2
- package/src/components/Menu.ts +11 -21
- package/src/components/Modal.ts +40 -8
- package/src/globals/index.ts +45 -2
- package/src/globals/shared/cm.ts +158 -0
- package/src/globals/shared/enums.ts +97 -0
- package/src/globals/shared/history.ts +15 -0
- package/src/globals/shared/index.ts +5 -0
- package/src/globals/shared/interfaces.ts +147 -0
- package/src/globals/shared/navigation.ts +15 -0
- package/src/globals/shared/steamid.ts +49 -0
- package/src/globals/shared/storage.ts +62 -0
- package/src/globals/steam-client/App.ts +2 -2
- package/src/globals/steam-client/Auth.ts +2 -2
- package/src/globals/steam-client/ClientNotifications.ts +1 -1
- package/src/globals/steam-client/Overlay.ts +2 -1
- package/src/globals/steam-client/Screenshots.ts +1 -1
- package/src/globals/steam-client/Settings.ts +1 -1
- package/src/globals/steam-client/SharedConnection.ts +2 -1
- package/src/globals/steam-client/UI.ts +15 -6
- package/src/globals/steam-client/User.ts +20 -0
- package/src/globals/steam-client/WebChat.ts +3 -2
- package/src/globals/steam-client/shared.ts +0 -69
- package/src/globals/stores/app.ts +102 -0
- package/src/globals/stores/appdetailsstore.ts +235 -0
- package/src/globals/stores/appinfostore.ts +65 -0
- package/src/globals/stores/appstore.ts +166 -0
- package/src/globals/stores/badgestore.ts +87 -0
- package/src/globals/stores/collectionstore.ts +544 -0
- package/src/globals/stores/consolestore.ts +54 -0
- package/src/globals/stores/focusnavcontroller.ts +522 -0
- package/src/globals/stores/friendstore/clanstore.ts +89 -0
- package/src/globals/stores/friendstore/friendchat.ts +646 -0
- package/src/globals/stores/friendstore/friendgroupstore.ts +187 -0
- package/src/globals/stores/friendstore/friendingamenotificationstore.ts +1 -0
- package/src/globals/stores/friendstore/friendslistfavoritesstore.ts +37 -0
- package/src/globals/stores/friendstore/friendsuifriendstore.ts +274 -0
- package/src/globals/stores/friendstore/index.ts +58 -0
- package/src/globals/stores/friendstore/shared.ts +318 -0
- package/src/globals/stores/gamerecordingstore.ts +367 -0
- package/src/globals/stores/index.ts +18 -0
- package/src/globals/stores/libraryuistore.ts +395 -0
- package/src/globals/stores/localizationmanager.ts +56 -0
- package/src/globals/stores/mainwindowbrowsermanager.ts +135 -0
- package/src/globals/stores/notificationstore.ts +298 -0
- package/src/globals/stores/popupmanager.ts +352 -0
- package/src/globals/stores/securitystore.ts +36 -0
- package/src/globals/stores/settingsstore.ts +134 -0
- package/src/globals/stores/steamuistore/gamepadbrowserview.ts +172 -0
- package/src/globals/stores/steamuistore/gamepaduiaudio.ts +117 -0
- package/src/globals/stores/steamuistore/index.ts +212 -0
- package/src/globals/stores/steamuistore/menu.ts +89 -0
- package/src/globals/stores/steamuistore/window.ts +466 -0
- package/src/globals/stores/storeitemcache.ts +347 -0
- package/src/globals/stores/urlstore.ts +150 -0
- package/src/modules/Router.ts +11 -77
- package/src/utils/index.ts +0 -1
- package/src/utils/react/treepatcher.ts +9 -9
- package/dist/globals/SteamClient.d.ts +0 -5
- package/dist/globals/SteamClient.js +0 -1
- package/dist/globals/stores.d.ts +0 -70
- package/src/globals/SteamClient.ts +0 -6
- package/src/globals/stores.ts +0 -74
- /package/dist/globals/{stores.js → shared/cm.js} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type { CPlayer } from './shared';
|
|
2
|
+
import type { CFriendStore } from '.';
|
|
3
|
+
|
|
4
|
+
export enum FriendGroupDisplayType {
|
|
5
|
+
eOnlineOnly,
|
|
6
|
+
eOnlineOnlyNotInGame,
|
|
7
|
+
eOfflineOnly,
|
|
8
|
+
eIncomingInvites,
|
|
9
|
+
eAll,
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type FriendGroup_t = 'offline' | 'outgoing';
|
|
13
|
+
|
|
14
|
+
interface CFriendGroupDisplayPrefs {
|
|
15
|
+
m_mapCollapsePrefs: Map<FriendGroup_t, boolean>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @returns `true` if a provided group is collapsed.
|
|
19
|
+
*/
|
|
20
|
+
GetUserGroupCollapsed(group: FriendGroup_t): boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Sets a provided group's state to a provided value.
|
|
24
|
+
*/
|
|
25
|
+
SetUserGroupCollapsed(group: FriendGroup_t, value: boolean): void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Toggles a provided group's collapsed state.
|
|
29
|
+
*/
|
|
30
|
+
ToggleUserGroupCollapsed(group: FriendGroup_t): void;
|
|
31
|
+
|
|
32
|
+
// maybe remove cuz this is done by the forementioned methods already
|
|
33
|
+
WritePrefs(): void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// this extends CPlayerGroup but idc for now
|
|
37
|
+
interface CFriendGroup {
|
|
38
|
+
// WHAT IS THIS
|
|
39
|
+
m_OnHeaderClick: any;
|
|
40
|
+
m_bAcceptsGroupRemovals: boolean;
|
|
41
|
+
m_bCollapsed: boolean;
|
|
42
|
+
m_bModifiable: boolean;
|
|
43
|
+
m_eDisplayType: FriendGroupDisplayType;
|
|
44
|
+
m_iGroupID: number;
|
|
45
|
+
m_rgAccountIDMembers: number[];
|
|
46
|
+
m_setMembers: Set<number>;
|
|
47
|
+
m_strName: string;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Adds a provided user to this group.
|
|
51
|
+
*/
|
|
52
|
+
AddMember(steamid3: number): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Removes all users from this group.
|
|
56
|
+
*/
|
|
57
|
+
Clear(): void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @returns a set of this group's members' SteamID3s.
|
|
61
|
+
*/
|
|
62
|
+
GetCurrentMemberSet(): Set<number>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Filters users of this group by their nicknames from a provided string.
|
|
66
|
+
*
|
|
67
|
+
* @param s The string to filter by.
|
|
68
|
+
*/
|
|
69
|
+
GetMembersMatchingSearch(s: string): CPlayer[];
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @returns `true` if a provided user is in this group.
|
|
73
|
+
*/
|
|
74
|
+
HasMember(steamid3: number): boolean;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Removes a provided user from this group.
|
|
78
|
+
*/
|
|
79
|
+
RemoveMember(steamid3: number): void;
|
|
80
|
+
|
|
81
|
+
get GetRawMemberList(): CPlayer[];
|
|
82
|
+
get accepts_group_removals(): boolean;
|
|
83
|
+
get collapsed(): boolean;
|
|
84
|
+
get display_type(): FriendGroupDisplayType;
|
|
85
|
+
get icon_url(): string;
|
|
86
|
+
get id(): number;
|
|
87
|
+
get member_accountid_list(): number[];
|
|
88
|
+
get member_count(): number;
|
|
89
|
+
get member_counts(): { ingame: number; online: number };
|
|
90
|
+
get member_list(): CPlayer[];
|
|
91
|
+
get member_list_unsorted(): CPlayer[];
|
|
92
|
+
get modifiable(): boolean;
|
|
93
|
+
get name(): string;
|
|
94
|
+
get onheaderclick(): any;
|
|
95
|
+
get should_filter_categorized_friends(): boolean;
|
|
96
|
+
get unfiltered_count(): number;
|
|
97
|
+
get unique_id(): string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
interface CAllIncomingInvitesFriendsGroup extends CFriendGroup {
|
|
101
|
+
m_mapSteamIDToMutualFriends: Map<any, any>;
|
|
102
|
+
m_unMutualFriendsCacheHash: number;
|
|
103
|
+
|
|
104
|
+
GetMutualFriendsCacheHash(): number;
|
|
105
|
+
SetMutualFriends(e: Map<any, any>): void;
|
|
106
|
+
SetMutualFriendsCacheHash(e: number): void;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
interface CFriendGameGroup extends CFriendGroup {
|
|
110
|
+
PlayerGroupSortComparator(e: CPlayer, t: CPlayer, r: Map<string, number>, n: any): any;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Represents functionality related to friend groups (not group chats).
|
|
115
|
+
*/
|
|
116
|
+
export declare class CFriendGroupStore {
|
|
117
|
+
m_FriendGroupDisplayPrefs: CFriendGroupDisplayPrefs;
|
|
118
|
+
m_FriendStore: CFriendStore;
|
|
119
|
+
m_groupAllFriends: CFriendGroup;
|
|
120
|
+
m_groupIncomingInvites: CAllIncomingInvitesFriendsGroup;
|
|
121
|
+
m_groupIngameFriends: CFriendGroup;
|
|
122
|
+
m_groupOfflineFriends: CFriendGroup;
|
|
123
|
+
m_groupOutgoingInvites: CFriendGroup;
|
|
124
|
+
m_mapGameGroups: Map<number, CFriendGameGroup>;
|
|
125
|
+
m_mapGroups: Map<number, CFriendGroup>;
|
|
126
|
+
m_nonSteamGameGroup: CFriendGameGroup;
|
|
127
|
+
m_singletonGameGroup: CFriendGameGroup;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Creates a friend group.
|
|
131
|
+
*
|
|
132
|
+
* @param name Name of the group to create.
|
|
133
|
+
* @param friends Array of SteamID64s to put into the group.
|
|
134
|
+
* @returns `true` on success.
|
|
135
|
+
*/
|
|
136
|
+
CreateGroup(name: string, friends: string[]): Promise<boolean>;
|
|
137
|
+
|
|
138
|
+
EnsureMutualFriendsForIncomingInvites(): void;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @returns a number of friends currently playing the provided game.
|
|
142
|
+
*/
|
|
143
|
+
GetCountFriendsInGame(appid: number): number;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @returns the friends group responsible for the provided app.
|
|
147
|
+
*/
|
|
148
|
+
GetGameGroup(appid: number): CFriendGameGroup;
|
|
149
|
+
|
|
150
|
+
GetMaxCountFriendsInGame(): number;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Edits a group.
|
|
154
|
+
*
|
|
155
|
+
* @param group The group to edit.
|
|
156
|
+
* @param name The name to change the group to.
|
|
157
|
+
* @param addedFriends
|
|
158
|
+
* @param removedFriends
|
|
159
|
+
* @returns `true` on success.
|
|
160
|
+
*
|
|
161
|
+
* @todo no idea if this actually works, always fails for me :((( fuck you )))
|
|
162
|
+
*/
|
|
163
|
+
ManageGroup(group: CFriendGroup, name: string, addedFriends?: string[], removedFriends?: string[]): Promise<boolean>;
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Removes a group.
|
|
167
|
+
*
|
|
168
|
+
* @param group The group to delete.
|
|
169
|
+
*/
|
|
170
|
+
RemoveGroup(group: CFriendGroup): void;
|
|
171
|
+
|
|
172
|
+
// TODO: this also fails but its name is self-explanatory
|
|
173
|
+
TransferFriendFromToGroup(player: CPlayer, groupA: CFriendGroup, groupB: CFriendGroup): Promise<boolean[]>;
|
|
174
|
+
|
|
175
|
+
get all_friends(): CFriendGroup;
|
|
176
|
+
get ingame_group(): CFriendGroup;
|
|
177
|
+
get incoming_invites_group(): CAllIncomingInvitesFriendsGroup;
|
|
178
|
+
get outgoing_invites_group(): CFriendGroup;
|
|
179
|
+
get friend_groups(): [...this['game_groups'], ...this['user_groups'], ...this['default_groups']];
|
|
180
|
+
get groupDisplayPrefs(): CFriendGroupDisplayPrefs;
|
|
181
|
+
get user_groups(): CFriendGroup[];
|
|
182
|
+
get game_groups(): CFriendGameGroup[];
|
|
183
|
+
get singleton_game_group(): this['m_singletonGameGroup'];
|
|
184
|
+
get categorized_friend_set(): Set<number>;
|
|
185
|
+
get default_groups(): CFriendGroup[];
|
|
186
|
+
get games_with_friends_playing(): number[];
|
|
187
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare class CFriendInGameNotificationStore {}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CClan, CClanStore } from './clanstore';
|
|
2
|
+
import type { CChat } from './friendchat';
|
|
3
|
+
import type { CPlayer } from './shared';
|
|
4
|
+
import type { CFriendStore } from '.';
|
|
5
|
+
|
|
6
|
+
type FavoriteEntry_t = { friend: CPlayer } | { chat: CChat } | { clan: CClan };
|
|
7
|
+
|
|
8
|
+
export declare class CFriendsListFavoritesStore {
|
|
9
|
+
m_ChatStore: any;
|
|
10
|
+
m_ClanStore: CClanStore;
|
|
11
|
+
m_FriendStore: CFriendStore;
|
|
12
|
+
m_rgFavorites: FavoriteEntry_t[];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Adds a provided entry to the favorites list.
|
|
16
|
+
*
|
|
17
|
+
* @param entry The entry to add.
|
|
18
|
+
* @param index Array index to use, e.g. `1` will be second in the list.
|
|
19
|
+
* @returns `true` on success.
|
|
20
|
+
*/
|
|
21
|
+
AddToFavorites(entry: FavoriteEntry_t, index?: number): Promise<boolean>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @returns `true` if the provided entry is favorited.
|
|
25
|
+
*/
|
|
26
|
+
BIsFavorited(entry: FavoriteEntry_t): boolean;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Removes the provided entry from favorites.
|
|
30
|
+
*
|
|
31
|
+
* @returns `true` on success.
|
|
32
|
+
*/
|
|
33
|
+
RemoveFromFavorites(entry: FavoriteEntry_t): Promise<boolean>;
|
|
34
|
+
|
|
35
|
+
// maybe remove cuz done by the aforementioned methods already
|
|
36
|
+
SaveFavorites(): Promise<boolean>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import type { CCallbackList, CSteamID, Unsubscribable } from '../../shared';
|
|
2
|
+
import type { EResult } from '../../steam-client/shared';
|
|
3
|
+
import type { CClanStore } from './clanstore';
|
|
4
|
+
import type { CFriendGroupStore } from './friendgroupstore';
|
|
5
|
+
import type { CFriendInGameNotificationStore } from './friendingamenotificationstore';
|
|
6
|
+
import type { CFriendsListFavoritesStore } from './friendslistfavoritesstore';
|
|
7
|
+
import type { CPlayer, EFriendRelationship, EPersonaState, PerFriendNotificationSettings } from './shared';
|
|
8
|
+
|
|
9
|
+
interface FriendStorePrefs {
|
|
10
|
+
ePersonaState: EPersonaState;
|
|
11
|
+
strNonFriendsAllowedToMsg: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface SendFriendInviteResult {
|
|
15
|
+
eResult: EResult;
|
|
16
|
+
eFriendRelationship: EFriendRelationship;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface TokenBucketChangeStatus {
|
|
20
|
+
m_numStartingTokens: number;
|
|
21
|
+
m_numTokensPerMillisecond: number;
|
|
22
|
+
m_numIntervalsPerMillisecond: number;
|
|
23
|
+
m_TimeLastChecked: number;
|
|
24
|
+
m_flTokens: number;
|
|
25
|
+
AddTokens(): void;
|
|
26
|
+
BRemoveToken(): void;
|
|
27
|
+
Reset(): void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// TODO(protobufs): generate
|
|
31
|
+
declare class CMsgClientFriendsList {}
|
|
32
|
+
|
|
33
|
+
// TODO(protobufs): generate
|
|
34
|
+
declare class PerFriendPreferences {}
|
|
35
|
+
|
|
36
|
+
export interface CFriendsUIFriendStore {
|
|
37
|
+
m_ClanStore: CClanStore;
|
|
38
|
+
m_FavoritesStore: CFriendsListFavoritesStore;
|
|
39
|
+
m_FriendGroupStore: CFriendGroupStore;
|
|
40
|
+
m_FriendInGameNotificationStore: CFriendInGameNotificationStore;
|
|
41
|
+
m_FriendStorePrefs: FriendStorePrefs;
|
|
42
|
+
m_InitialAppInfoPromises: Promise<void>[];
|
|
43
|
+
m_TokenBucketChangeStatus: TokenBucketChangeStatus;
|
|
44
|
+
m_TokenFailureAssertCount: number;
|
|
45
|
+
m_bAwayCallbackFired: boolean;
|
|
46
|
+
m_bInitialAppInfoLoaded: boolean;
|
|
47
|
+
m_bInitialPersonaStatesLoaded: boolean;
|
|
48
|
+
m_bIsClientIdle: boolean;
|
|
49
|
+
m_bMadeGetFriendsListRequest: boolean;
|
|
50
|
+
m_bNextActivityCallbackRegistered: boolean;
|
|
51
|
+
m_bParentalLocked: boolean;
|
|
52
|
+
m_bPerFriendPreferencesLoaded: boolean;
|
|
53
|
+
m_bReadyToRender: boolean;
|
|
54
|
+
m_bReceivedFriendsList: boolean;
|
|
55
|
+
m_bReconnectedSinceLastIdleUpdate: boolean;
|
|
56
|
+
m_bSnoozeCallbackFired: boolean;
|
|
57
|
+
m_bUserSetPersonaState: boolean;
|
|
58
|
+
m_cFriendPersonaStatesInitialized: number;
|
|
59
|
+
m_cLastUnreadPriorityMessageCountPosted: number;
|
|
60
|
+
m_eUserPersonaState: EPersonaState;
|
|
61
|
+
m_eUserPersonaStateParental: EPersonaState;
|
|
62
|
+
m_iIntervalDelayLoadFriendsList: number;
|
|
63
|
+
m_iIntervalSubscribeToPersonaStateUpdates: number;
|
|
64
|
+
m_mapApprovedNonFriendMessages: Map<number, number>;
|
|
65
|
+
m_mapPlayerCache: Map<number, CPlayer>;
|
|
66
|
+
m_nMissingPersonaStateMaxRetries: number;
|
|
67
|
+
m_nMissingPersonaStateRetryCount: number;
|
|
68
|
+
m_rgPersonaStateChangeCallbacks: CCallbackList<[CPlayer]>;
|
|
69
|
+
m_rgPlayerGameChangedCallbacks: CCallbackList<[number, number, number]>;
|
|
70
|
+
m_self: CPlayer;
|
|
71
|
+
m_setFriendAccountIDs: Set<number>;
|
|
72
|
+
m_setFriendsNeedingPersonaStateLoad: Set<number>;
|
|
73
|
+
m_setIncomingInviteAccountIDs: Set<number>;
|
|
74
|
+
m_tsLastConnect: number;
|
|
75
|
+
m_vecLastTenChangeStatusReasons: string[];
|
|
76
|
+
|
|
77
|
+
// does not actually add a friend, im pretty sure
|
|
78
|
+
AddFriend(steamid64: string, relationship: EFriendRelationship, dontInitPlayer: boolean): void;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Adds a callback to dispatch on persona state change.
|
|
82
|
+
*/
|
|
83
|
+
AddPersonaStateChangedCallback(callback: (player: CPlayer) => void): Unsubscribable;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Adds a callback to dispatch on player's game change.
|
|
87
|
+
*/
|
|
88
|
+
AddPlayerGameChangedCallback(callback: (steamid3: number, param1: number, appid: number) => void): Unsubscribable;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Adds a provided player to cache.
|
|
92
|
+
*
|
|
93
|
+
* @param steamid3 The SteamID3 of the player to add to the cache.
|
|
94
|
+
* @returns the persona state of the player's SteamID3.
|
|
95
|
+
*/
|
|
96
|
+
AddPlayerToCache(steamid3: number, unused0?: number, unused1?: boolean): CPlayer;
|
|
97
|
+
|
|
98
|
+
AdjustPersonaStateForIdleTime(state: EPersonaState): number;
|
|
99
|
+
|
|
100
|
+
BApprovedNonFriendMessages(steamid3: number): boolean;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @returns `true` if user is currently in invisible mode.
|
|
104
|
+
*/
|
|
105
|
+
BIsInvisibleMode(): boolean;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @returns `true` if user is currently in offline mode (community, not
|
|
109
|
+
* client).
|
|
110
|
+
*/
|
|
111
|
+
BIsOfflineMode(): boolean;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Blocks a provided user.
|
|
115
|
+
*
|
|
116
|
+
* @param player The user to (un)block.
|
|
117
|
+
* @param unblock `true` to unblock, `false` otherwise.
|
|
118
|
+
*/
|
|
119
|
+
BlockPlayer(player: CPlayer, unblock?: boolean): Promise<EFriendRelationship>;
|
|
120
|
+
|
|
121
|
+
EnsureApprovedNonFriendMapReady(): void;
|
|
122
|
+
|
|
123
|
+
EnsureFriendsListLoaded(param0: boolean): void;
|
|
124
|
+
|
|
125
|
+
ForceReadyToRender(): void;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @returns the incoming group invite count.
|
|
129
|
+
*/
|
|
130
|
+
GetClanInviteCount(): number;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @returns a cached player from a provided SteamID3, or `null` if not a
|
|
134
|
+
* friend.
|
|
135
|
+
*/
|
|
136
|
+
GetFriend(steamid3: number): CPlayer | null;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Like {@link GetFriend}, but will return `undefined` if not cached yet.
|
|
140
|
+
*/
|
|
141
|
+
GetFriendIfCached(steamid3: number): CPlayer | undefined;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @returns the incoming friend request count.
|
|
145
|
+
*/
|
|
146
|
+
GetFriendInviteCount(): number;
|
|
147
|
+
|
|
148
|
+
GetFriendsList(): Promise<void>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @returns the online friends count.
|
|
152
|
+
*/
|
|
153
|
+
GetOnlineFriendCount(): number;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @returns the outgoing friend request count.
|
|
157
|
+
*/
|
|
158
|
+
GetOutgoingFriendRequestCount(): number;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* @returns the incoming friend request count + incoming group invite count.
|
|
162
|
+
*/
|
|
163
|
+
GetPendingInviteCount(): number;
|
|
164
|
+
|
|
165
|
+
GetPersonaStatePreference(): EPersonaState;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Gets a player from a provided SteamID3 and caches it.
|
|
169
|
+
*/
|
|
170
|
+
GetPlayer(steamid3: number): CPlayer;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Like {@link GetPlayer}, but returns `undefined` if not cached yet.
|
|
174
|
+
*/
|
|
175
|
+
GetPlayerIfCached(steamid3: number): CPlayer | undefined;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @returns `true` if user has DND enabled.
|
|
179
|
+
*/
|
|
180
|
+
GetUserDoNotDisturb(): boolean;
|
|
181
|
+
|
|
182
|
+
// TODO: later
|
|
183
|
+
InviteToGame(player: CPlayer, appid: number, connectString: string): void;
|
|
184
|
+
|
|
185
|
+
// TODO: steamIdLobby is steam_id_lobby from CMsgClientMMSInviteToLobby but no
|
|
186
|
+
// idea what that is yet
|
|
187
|
+
InviteToLobby(player: CPlayer, appid: number, steamIdLobby: string): void;
|
|
188
|
+
|
|
189
|
+
InviteToWatch(player: CPlayer): void;
|
|
190
|
+
|
|
191
|
+
PlayFriendOnlineSound(): void;
|
|
192
|
+
|
|
193
|
+
PlayJoinGameSound(): void;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Removes a provided user from friends.
|
|
197
|
+
*/
|
|
198
|
+
RemoveFriend(player: CPlayer): Promise<EFriendRelationship>;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Like {@link RemoveFriend}, but using a SteamID.
|
|
202
|
+
*
|
|
203
|
+
* @param steamid Instance of CSteamID or a SteamID64.
|
|
204
|
+
*/
|
|
205
|
+
RemoveFriendBySteamID(steamid: string | CSteamID): Promise<EFriendRelationship>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Sends a friend invite to a provided user.
|
|
209
|
+
*/
|
|
210
|
+
SendFriendInvite(player: CPlayer): Promise<SendFriendInviteResult>;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Like {@link SendFriendInvite}, but using a SteamID.
|
|
214
|
+
*
|
|
215
|
+
* @param steamid Instance of CSteamID or a SteamID64.
|
|
216
|
+
*/
|
|
217
|
+
SendFriendInviteBySteamID(steamid: string | CSteamID): Promise<SendFriendInviteResult>;
|
|
218
|
+
|
|
219
|
+
SendPersonaStateToServer(needPersonaResponse: boolean, changeStatusReason: string): boolean;
|
|
220
|
+
|
|
221
|
+
SetApprovedNonFriendMessages(param0: number): void;
|
|
222
|
+
|
|
223
|
+
SetFriendsList(msg: CMsgClientFriendsList): Promise<void>;
|
|
224
|
+
|
|
225
|
+
// sets everyone to be offline lol why
|
|
226
|
+
SetPersonasOffline(value: boolean): void;
|
|
227
|
+
|
|
228
|
+
SetPlayerNickname(prefs: PerFriendPreferences, nicknane: string): Promise<EResult>;
|
|
229
|
+
|
|
230
|
+
SetPlayerNotificationSettings(
|
|
231
|
+
prefs: PerFriendPreferences,
|
|
232
|
+
notificationSettings: PerFriendNotificationSettings,
|
|
233
|
+
): Promise<EResult>;
|
|
234
|
+
|
|
235
|
+
SetPlayerPerFriendPreferences(
|
|
236
|
+
prefs: PerFriendPreferences,
|
|
237
|
+
nickname: string,
|
|
238
|
+
notificationSettings: PerFriendNotificationSettings,
|
|
239
|
+
): Promise<EResult>;
|
|
240
|
+
|
|
241
|
+
SetReconnectedSinceLastIdleUpdate(): void;
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Sets the user's DND state.
|
|
245
|
+
*/
|
|
246
|
+
SetUserDoNotDisturb(value: boolean): void;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Sets the user's status.
|
|
250
|
+
* @param state The state to set.
|
|
251
|
+
* @param isUserSet
|
|
252
|
+
*/
|
|
253
|
+
SetUserPersonaState(state: EPersonaState, isUserSet: boolean): void;
|
|
254
|
+
|
|
255
|
+
UpdateUnreadMessagesGlobal(): void;
|
|
256
|
+
|
|
257
|
+
UpdateUserPersonaStateInternal(
|
|
258
|
+
state: EPersonaState,
|
|
259
|
+
isUserSet: boolean,
|
|
260
|
+
isClientIdle: boolean,
|
|
261
|
+
param3: boolean,
|
|
262
|
+
changeStatusReason: string,
|
|
263
|
+
): void;
|
|
264
|
+
|
|
265
|
+
get all_friends(): CPlayer[];
|
|
266
|
+
get all_friends_accountids(): Set<number>;
|
|
267
|
+
get friends_list_ready(): boolean;
|
|
268
|
+
get not_ready_to_render_reason(): string;
|
|
269
|
+
get online_friends(): CPlayer[];
|
|
270
|
+
get self(): CPlayer;
|
|
271
|
+
get ClanStore(): CClanStore;
|
|
272
|
+
get FavoritesStore(): CFriendsListFavoritesStore;
|
|
273
|
+
get FriendGroupStore(): CFriendGroupStore;
|
|
274
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { CSteamID } from '../../shared';
|
|
2
|
+
import type { EResult } from '../../steam-client/shared';
|
|
3
|
+
import type { CFriendsUIFriendStore } from './friendsuifriendstore';
|
|
4
|
+
import type { CPlayer } from './shared';
|
|
5
|
+
|
|
6
|
+
export declare class CFriendStore {
|
|
7
|
+
m_FriendsUIFriendStore: CFriendsUIFriendStore;
|
|
8
|
+
m_mapOwnedGamesCacheErrors: Map<number, EResult>;
|
|
9
|
+
m_mapPlayerCache: Map<number, CPlayer>;
|
|
10
|
+
|
|
11
|
+
BShouldCachePlayer(persona: CPlayer): boolean;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @returns a set of owned games' IDs.
|
|
15
|
+
*/
|
|
16
|
+
FetchOwnedGames(steamid3: number): Promise<{ setApps: Set<number> }>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @returns the number of friends currently playing the provided game.
|
|
20
|
+
*/
|
|
21
|
+
GetCountFriendsInGame(appid: number): number;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @returns the number of currently playing friends.
|
|
25
|
+
*/
|
|
26
|
+
GetCountFriendsPlayingGames(): number;
|
|
27
|
+
|
|
28
|
+
GetFriendState(friend: number | CSteamID): CPlayer;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @returns an array of friends currently playing the provided game.
|
|
32
|
+
*/
|
|
33
|
+
GetFriendsInGame(appid: number): CPlayer[];
|
|
34
|
+
|
|
35
|
+
GetMaxCountFriendsInGame(): number;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @returns a set of owned games' IDs of a provided friend.
|
|
39
|
+
*/
|
|
40
|
+
GetOwnedGames(steamid3: number): Set<number>;
|
|
41
|
+
|
|
42
|
+
IsLibraryAccessDenied(steamid3: number): boolean;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Loads the persona for a provided friend.
|
|
46
|
+
*
|
|
47
|
+
* @param friend SteamID3 or CSteamID instance of a friend to load the persona
|
|
48
|
+
* for.
|
|
49
|
+
* @returns the loaded persona.
|
|
50
|
+
*/
|
|
51
|
+
LoadPersonaState(friend: number | CSteamID): Promise<CPlayer>;
|
|
52
|
+
|
|
53
|
+
RefreshOwnedGames(steamid3: number): void;
|
|
54
|
+
|
|
55
|
+
get allFriends(): CPlayer[];
|
|
56
|
+
get currentUserSteamID(): CSteamID;
|
|
57
|
+
get favoriteFriends(): CPlayer[];
|
|
58
|
+
}
|