bc-stubs 106.0.0 → 107.0.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,29 @@
1
+ type FriendListModes = FriendListMode[];
2
+ type FriendListMode = "OnlineFriends" | "Beeps" | "AllFriends";
3
+ type FriendListSortingMode = 'None' | 'MemberName' | 'MemberNickname' | 'MemberNumber' | 'ChatRoomName' | 'RelationType';
4
+ type FriendListSortingDirection = 'Asc' | 'Desc';
5
+
6
+ type FriendListReturn = { Screen: string, Module: ModuleType, IsInChatRoom?: boolean, hasScrolledChat?: boolean };
7
+
8
+ type FriendRawData = {
9
+ memberNumber?: number; /* undefined for NPCs */
10
+ memberName: string;
11
+ memberNickname?: string;
12
+ chatRoom?: FriendRawRoom;
13
+ beep?: FriendRawBeep;
14
+ relationType?: string;
15
+ canDelete?: boolean;
16
+ }
17
+
18
+ type FriendRawRoom = {
19
+ name?: string;
20
+ caption: string;
21
+ canSearchRoom: boolean;
22
+ };
23
+
24
+ type FriendRawBeep = {
25
+ beepIndex?: number;
26
+ caption: string;
27
+ hasMessage?: boolean;
28
+ canBeep?: boolean;
29
+ };
@@ -298,7 +298,8 @@ interface ExpressionNameMap {
298
298
  Emoticon: (
299
299
  null | "Afk" | "Whisper" | "Sleep" | "Hearts" | "Tear" | "Hearing" | "Confusion" | "Exclamation" |
300
300
  "Annoyed" | "Read" | "RaisedHand" | "Spectator" | "ThumbsDown" | "ThumbsUp" | "LoveRope" |
301
- "LoveGag" | "LoveLock" | "Wardrobe" | "Gaming" | "Coffee" | "Fork" | "Music"
301
+ "LoveGag" | "LoveLock" | "Wardrobe" | "Gaming" | "Coffee" | "Fork" | "Music" | "Car" | "Hanger" |
302
+ "Call" | "Lightbulb" | "Warning" | "BrokenHeart" | "Drawing" | "Coding" | "TV" | "Bathing"
302
303
  ),
303
304
  }
304
305
 
@@ -369,6 +370,7 @@ type AssetAttribute =
369
370
  "Skirt" | "SuitLower" | "UpperLarge" |
370
371
  "ShortHair" | "SmallEars" | "NoEars" | "NoseRing" | "HoodieFix" |
371
372
  "CanAttachMittens" |
373
+ "IsChestHarness" | "IsHipHarness" |
372
374
  "PenisLayer" | "PussyLayer" | "GenitaliaCover" | "Pussy1" | "Pussy2" | "Pussy3" |
373
375
  "CagePlastic2" | "CageTechno" | "CageFlat" |
374
376
  "FuturisticRecolor" | "FuturisticRecolorDisplay" |
@@ -380,9 +382,11 @@ type PosePrerequisite = `Can${AssetPoseName}`;
380
382
  type AssetPrerequisite =
381
383
  PosePrerequisite | "AccessBreast" | "AccessBreastSuitZip" | "AccessButt" | "AccessFullPenis" | "AccessMouth" | "AccessTorso" | "AccessVulva" | "AccessCrotch" |
382
384
  "BlockedMouth" | "ButtEmpty" | "CanBeCeilingTethered" | "CanCoverVulva" | "CanHaveErection" | "CanBeLimp" | "CanKneel" | "CannotBeSuited" | "CannotHaveWand" |
385
+ "CanAttachMittens" |
383
386
  "ClitEmpty" | "Collared" | "CuffedArms" | "CuffedArmsOrEmpty" | "CuffedFeet" | "CuffedFeetOrEmpty" | "CuffedLegs" | "CuffedLegsOrEmpty" |
384
387
  "DisplayFrame" | "EyesEmpty" | "GagCorset" | "GagFlat" | "GagUnique" | "GasMask" | "HasBreasts" | "HasFlatChest" | "HasPenis" | "HasVagina" |
385
- "HoodEmpty" | "NakedFeet" | "NakedHands" | "NeedsHarness" | "NeedsNippleRings" | "NoChastityCage" | "NoErection" | "NoClothLower" | "NoItemArms" |
388
+ "HoodEmpty" | "NakedFeet" | "NakedHands" | "NeedsChestHarness" | "NeedsHipHarness" | "NeedsNippleRings" |
389
+ "NoChastityCage" | "NoErection" | "NoClothLower" | "NoItemArms" |
386
390
  "NoItemFeet" | "NoItemHands" | "NoItemLegs" | "NoMaidTray" | "NoOuterClothes" | "NotChained" | "NotChaste" | "NotKneeling" |
387
391
  "NotLifted" | "NotMasked" | "NotMounted" | "NotProtrudingFromMouth" | "NotSuspended" | "OnBed" |
388
392
  "RemotesAllowed" | "VulvaEmpty"
@@ -1481,6 +1485,7 @@ interface Character {
1481
1485
  IsAssFull: () => boolean;
1482
1486
  IsFixedHead: () => boolean;
1483
1487
  GetDeafLevel: () => number;
1488
+ CanPickLocks: () => boolean;
1484
1489
  IsEdged: () => boolean;
1485
1490
  IsPlayer: () => this is PlayerCharacter;
1486
1491
  IsBirthday: () => boolean;
@@ -1574,7 +1579,7 @@ type NPCArchetype =
1574
1579
  /* Pandora Special */
1575
1580
  "Victim"|"Target"|"Chest"|
1576
1581
  // Misc
1577
- "Dominatrix" | "Nurse" | "Submissive" | "Mistress" | "Patient" | "Maid" | "Mistress" | "Maiestas" | "Vincula" | "Amplector" | "Corporis" | "AnimeGirl" | "Bunny"
1582
+ "Dominatrix" | "Nurse" | "Submissive" | "Mistress" | "Patient" | "Maid" | "Mistress" | "Maiestas" | "Vincula" | "Amplector" | "Corporis" | "AnimeGirl" | "Bunny" | "Succubus"
1578
1583
  ;
1579
1584
 
1580
1585
  /** NPC Character extension */
@@ -1897,6 +1902,7 @@ interface PlayerOnlineSettings {
1897
1902
  ShowStatus?: boolean;
1898
1903
  EnableAfkTimer: boolean;
1899
1904
  ShowRoomCustomization: 0 | 1 | 2 | 3; // 0 - Never, 1 - No by default, 2 - Yes by default, 3 - Always
1905
+ FriendListAutoRefresh: boolean;
1900
1906
  }
1901
1907
 
1902
1908
  /** Pandora Player extension */
@@ -4142,6 +4148,7 @@ type ChatRoomMapObjectType = (
4142
4148
  | "FloorDecorationThemed"
4143
4149
  | "FloorDecorationParty"
4144
4150
  | "FloorDecorationCamping"
4151
+ | "FloorDecorationExpanding"
4145
4152
  | "FloorItem"
4146
4153
  | "FloorObstacle"
4147
4154
  | "WallDecoration"
@@ -4172,6 +4179,8 @@ interface ChatRoomMapObject extends ChatRoomMapDoodad {
4172
4179
  Left?: number;
4173
4180
  Width?: number;
4174
4181
  Height?: number;
4182
+ Transparency?: number;
4183
+ TransparencyCutoutHeight?: number;
4175
4184
  Exit?: boolean;
4176
4185
  Unique?: boolean;
4177
4186
  AssetGroup?: AssetGroupItemName;
@@ -4179,6 +4188,7 @@ interface ChatRoomMapObject extends ChatRoomMapDoodad {
4179
4188
  BlockVision?: boolean;
4180
4189
  BlockHearing?: boolean;
4181
4190
  IsVisible?: () => boolean;
4191
+ BuildImageName?: (X: number, Y: number) => string;
4182
4192
  }
4183
4193
 
4184
4194
  interface ChatRoomMapMovement {
@@ -1,14 +1,11 @@
1
- /**
2
- * Loads the online friend list from the server. This function is called dynamically, when the player invokes the friendlist dialog.
3
- * @returns {void} - Nothing
4
- */
5
1
  declare function FriendListLoad(): void;
6
- /**
7
- * Run the friend list screen - Draw the controls and print the result of the server query to the screen.
8
- * This function is called dynamically on a regular basis. So don't do complex loops within
9
- * @returns {void} - Nothing
10
- */
11
- declare function FriendListRun(): void;
2
+ declare function FriendListResize(load: boolean): void;
3
+ declare function FriendListRun(time: number): void;
4
+ declare function FriendListDraw(): void;
5
+ declare function FriendListClick(event: MouseEvent | TouchEvent): void;
6
+ declare function FriendListKeyDown(event: KeyboardEvent): boolean;
7
+ declare function FriendListUnload(): void;
8
+ declare function FriendListExit(): void;
12
9
  /**
13
10
  * Creates beep message menu
14
11
  * @param {number} MemberNumber Member number of target player
@@ -28,17 +25,6 @@ declare function FriendListBeepMenuSend(): void;
28
25
  * @param {number} i index of the beep
29
26
  */
30
27
  declare function FriendListShowBeep(i: number): void;
31
- /**
32
- * Handles the click events in the friend list. Clicks are propagated to this function from CommonClick()
33
- * @returns {void} - Nothing
34
- */
35
- declare function FriendListClick(): void;
36
- /**
37
- * This function is called, when the user exists the friend list. From here we either get back to the InformationSheet
38
- * or the ChatRoom search, depending on the value of the global variable 'FriendListReturn'
39
- * @returns {void} - Nothing
40
- */
41
- declare function FriendListExit(): void;
42
28
  /**
43
29
  * Exits the friendlist
44
30
  * @param {string} room The room to search for
@@ -54,10 +40,9 @@ declare function FriendListChatSearch(room: string): void;
54
40
  *
55
41
  * `data.ChatRoomName` - The name of the ChatRoom
56
42
  *
57
- * `data.ChatRoomSpace` - The space, where this room was created. Currently this can be the Asylum or the LARP arena
43
+ * `data.ChatRoomSpace` - The space, where this room was created.
58
44
  *
59
45
  * `data.Type` - The relationship that exists between the player and the friend of the list.
60
- * Currently, only "submissive" is supported
61
46
  * @returns {void} - Nothing
62
47
  */
63
48
  declare function FriendListLoadFriendList(data: ServerFriendInfo[]): void;
@@ -68,21 +53,77 @@ declare function FriendListLoadFriendList(data: ServerFriendInfo[]): void;
68
53
  * @returns {void} - Nothing
69
54
  */
70
55
  declare function FriendListDelete(MemberNumber: number): void;
56
+ /**
57
+ * Handles mode changes for friend list
58
+ * @param {number} modeIndex - mode to change to
59
+ */
60
+ declare function FriendListChangeMode(modeIndex: number): void;
61
+ /**
62
+ * Sorts the friend list depending on the sorting mode
63
+ * and the sorting direction. If the sorting mode is none nothing is done.
64
+ * @param {FriendListSortingMode} sortingMode
65
+ * @param {FriendListSortingDirection} sortingDirection
66
+ */
67
+ declare function FriendListSort(sortingMode: FriendListSortingMode, sortingDirection: FriendListSortingDirection): void;
68
+ /**
69
+ * Sorts the friend list by properties based on the search input.
70
+ * Searched properties: Name, Nickname (NYI) and MemberNumber
71
+ * @param {string} text
72
+ */
73
+ declare function FriendListSearchByProperties(text: string): void;
74
+ /**
75
+ * Highlights the searched text in the innerHTML
76
+ * @param {Element} element
77
+ * @param {string} text
78
+ * @returns {string} - The innerHTML with the searched text highlighted
79
+ */
80
+ declare function FriendListHighlightProperty(element: Element, text: string): string;
81
+ /**
82
+ * Handles changes of the sorting mode
83
+ * @param {FriendListSortingMode} sortingMode
84
+ */
85
+ declare function FriendListChangeSortingMode(sortingMode: FriendListSortingMode): void;
86
+ /**
87
+ * @this {HTMLButtonElement}
88
+ */
89
+ declare function FriendListToggleAutoRefresh(this: HTMLButtonElement): void;
71
90
  declare var FriendListBackground: string;
72
- declare var FriendListContent: string;
73
91
  /** @type {number[]} */
74
92
  declare var FriendListConfirmDelete: number[];
75
- /** @type {null | { Screen: string, Module: ModuleType, IsInChatRoom?: boolean, hasScrolledChat?: boolean }} */
76
- declare var FriendListReturn: null | {
77
- Screen: string;
78
- Module: ModuleType;
79
- IsInChatRoom?: boolean;
80
- hasScrolledChat?: boolean;
81
- };
82
- declare var FriendListMode: string[];
93
+ /** @type {FriendListReturn | null} */
94
+ declare var FriendListReturn: FriendListReturn | null;
95
+ /** @type {FriendListModes} */
96
+ declare var FriendListMode: FriendListModes;
83
97
  declare var FriendListModeIndex: number;
84
98
  /** @type {IFriendListBeepLogMessage[]} */
85
99
  declare var FriendListBeepLog: IFriendListBeepLogMessage[];
86
- /** @type {number|null} MemberNumber of the player to send beep to */
87
- declare let FriendListBeepTarget: number | null;
100
+ /** @type {number} MemberNumber of the player to send beep to */
101
+ declare let FriendListBeepTarget: number;
88
102
  declare var FriendListBeepShowRoom: boolean;
103
+ /** @type {FriendListSortingMode} */
104
+ declare let FriendListSortingMode: FriendListSortingMode;
105
+ /** @type {FriendListSortingDirection} */
106
+ declare let FriendListSortingDirection: FriendListSortingDirection;
107
+ declare namespace FriendListAutoRefresh {
108
+ let interval: number;
109
+ let nextRefresh: number;
110
+ }
111
+ declare const FriendListIDs: Readonly<{
112
+ root: "friend-list-subscreen";
113
+ navBar: "friend-list-nav-bar";
114
+ header: "friend-list-header";
115
+ friendList: "friend-list";
116
+ friendListTable: "friend-list-table";
117
+ navButtons: "friend-list-buttons";
118
+ modeTitle: "friend-list-mode-title";
119
+ searchInput: "friend-list-search-input";
120
+ btnAutoRefresh: "friend-list-button-auto-refresh";
121
+ btnRefresh: "friend-list-button-refresh";
122
+ btnPrev: "friend-list-button-prev";
123
+ btnNext: "friend-list-button-next";
124
+ btnExit: "friend-list-button-exit";
125
+ btnResetSorting: "friend-list-reset-sorting";
126
+ beepList: "friend-list-beep-dialog";
127
+ beepTextArea: "friend-list-beep-textarea";
128
+ beepFooter: "friend-list-beep-footer";
129
+ }>;
@@ -45,7 +45,6 @@ declare function ChatRoomCharacterViewShowMapButton(): boolean;
45
45
  * @param {number} Zoom Room zoom
46
46
  * @param {number} ClickX Click X postion relative to character, without zoom
47
47
  * @param {number} ClickY Click Y postion relative to character, without zoom
48
- * @param {number} Pos Index of target character
49
48
  */
50
49
  declare function ChatRoomCharacterViewClickCharacter(C: Character, CharX: number, CharY: number, Zoom: number, ClickX: number, ClickY: number): void;
51
50
  /**
@@ -365,6 +365,8 @@ declare var ChatRoomMapViewUpdatePlayerNext: null | number;
365
365
  declare var ChatRoomMapViewUpdateLastMapDataNext: null | number;
366
366
  /** @type {null | Character} */
367
367
  declare var ChatRoomMapViewFocusedCharacter: null | Character;
368
+ declare var ChatRoomMapViewFocusedCharacterX: number;
369
+ declare var ChatRoomMapViewFocusedCharacterY: number;
368
370
  declare var ChatRoomMapViewSuperPowersActive: boolean;
369
371
  declare var ChatRoomMapViewBaseMovementSpeed: number;
370
372
  /** @type {null | ChatRoomMapMovement} */
@@ -413,6 +413,11 @@ declare function PrivateIsAnimeGirl(): boolean;
413
413
  * @returns {boolean} - TRUE if archetype is Bunny
414
414
  */
415
415
  declare function PrivateIsBunny(): boolean;
416
+ /**
417
+ * Returns TRUE if the current character is a succubus
418
+ * @returns {boolean} - TRUE if archetype is succubus
419
+ */
420
+ declare function PrivateIsSuccubus(): boolean;
416
421
  /**
417
422
  * Returns a random item that could be bought from the store as a gift that the player could receive by a NPC
418
423
  * @param {boolean} Restraint - TRUE if we must return an item that's a restraint
@@ -155,7 +155,7 @@ declare namespace Shop2 {
155
155
  function ApplyItemFilters(clearDatalist?: boolean): void;
156
156
  function _SetCheckboxFilters(): void;
157
157
  function _UpdatePoseButtons(): void;
158
- function _ClickDropdown(): void;
158
+ function _ClickDropdown(id: string): void;
159
159
  let DrawPriceRibbon: (label: string, x: number, y: number, w: number, color?: string) => void;
160
160
  function ParseAssets(assets: readonly Asset[]): ShopItem[];
161
161
  let Elements: Record<string, ShopScreenFunctions>;
@@ -18,6 +18,11 @@ declare function SlaveMarketCannotStartAuctionRoom(): boolean;
18
18
  * @returns {boolean} - Returns TRUE if the player can be auctioned
19
19
  */
20
20
  declare function SlaveMarketCanBeAuctioned(): boolean;
21
+ /**
22
+ * Checks if the character has a specific title
23
+ * @returns {boolean} - TRUE if the character has the title in the parameter
24
+ */
25
+ declare function SlaveMarketSlaveTitleIs(Title: any): boolean;
21
26
  /**
22
27
  * Loads the Slave Market room, generates the Mistress and slave
23
28
  * @returns {void} - Nothing
@@ -208,10 +208,10 @@ declare function AssetInventoryIDUnnecessary(): void;
208
208
  * @param {string} GroupName - The group name to compare
209
209
  * @param {string} AssetName - The asset name to compare
210
210
  * @param {string} BuyGroup - The buying group to compare
211
- * @param {number} InventoryID - The inventory ID to compare
211
+ * @param {number | undefined} InventoryID - The inventory ID to compare
212
212
  * @returns {void} - Nothing
213
213
  */
214
- declare function AssetInventoryIDBuyGroup(GroupName: string, AssetName: string, BuyGroup: string, InventoryID: number): void;
214
+ declare function AssetInventoryIDBuyGroup(GroupName: string, AssetName: string, BuyGroup: string, InventoryID: number | undefined): void;
215
215
  /**
216
216
  * Shows a console warning for all Inventory IDs where the BuyGroup is creating a conflict
217
217
  * @returns {void} - Nothing
@@ -35,11 +35,11 @@ declare function CharacterLoadCSVDialog(C: Character, info?: DialogInfo): void;
35
35
  /**
36
36
  * Sets the clothes based on a character archetype
37
37
  * @param {Character} C - Character to set the clothes for
38
- * @param {"Maid" | "Mistress" | "Employee" | "AnimeGirl" | "Bunny"} Archetype - Archetype to determine the clothes to put on
38
+ * @param {"Maid" | "Mistress" | "Employee" | "AnimeGirl" | "Bunny" | "Succubus"} Archetype - Archetype to determine the clothes to put on
39
39
  * @param {string} [ForceColor] - Color to use for the added clothes
40
40
  * @returns {void} - Nothing
41
41
  */
42
- declare function CharacterArchetypeClothes(C: Character, Archetype: "Maid" | "Mistress" | "Employee" | "AnimeGirl" | "Bunny", ForceColor?: string): void;
42
+ declare function CharacterArchetypeClothes(C: Character, Archetype: "Maid" | "Mistress" | "Employee" | "AnimeGirl" | "Bunny" | "Succubus", ForceColor?: string): void;
43
43
  /**
44
44
  * Loads an NPC into the character array. The appearance is randomized, and a type can be provided to dress them in a given style.
45
45
  * @param {string} CharacterID - The unique identifier for the NPC
@@ -179,6 +179,16 @@ declare function ElementGetScrollPercentage(ID: string): (number | null);
179
179
  * @returns {boolean} - Returns TRUE if the specified element is scrolled to the very bottom
180
180
  */
181
181
  declare function ElementIsScrolledToEnd(ID: string): boolean;
182
+ /**
183
+ * Sets the scroll position of an element to a specified percentage of its scrollable content.
184
+ * Ideally scroll percentage should be gotten with {@link ElementGetScrollPercentage}
185
+ *
186
+ * @param {string} ID
187
+ * @param {number} scrollPercentage
188
+ * @param {ScrollBehavior} scrollBehavior
189
+ * @returns {void}
190
+ */
191
+ declare function ElementSetScrollPercentage(ID: string, scrollPercentage: number, scrollBehavior?: ScrollBehavior): void;
182
192
  /**
183
193
  * Gives focus to a specified existing element for non-mobile users.
184
194
  * @param {string} ID - The id of the element to give focus to.
@@ -271,14 +281,17 @@ declare namespace ElementButton {
271
281
  top: "button-tooltip-top";
272
282
  bottom: "button-tooltip-bottom";
273
283
  }>;
274
- let _TouchStart: (this: HTMLButtonElement, event: Event) => Promise<void>;
275
- let _TouchEnd: (this: HTMLButtonElement, event: Event) => Promise<void>;
276
- let _MouseDown: (this: HTMLButtonElement, event: MouseEvent) => Promise<void>;
277
284
  let _KeyDown: (this: HTMLButtonElement, ev: KeyboardEvent) => Promise<void>;
278
285
  let _KeyUp: (this: HTMLButtonElement, ev: KeyboardEvent) => Promise<void>;
286
+ let _Click: (this: HTMLButtonElement, ev: MouseEvent | TouchEvent) => void;
287
+ function _QueryDFS(root: Element, query: string, filter: (el: Element) => boolean): Generator<Element, void>;
288
+ let _ClickRadio: (this: HTMLButtonElement, ev: Event) => void;
289
+ let _ClickCheckbox: (this: HTMLButtonElement, ev: Event) => void;
279
290
  function Create(id: null | string, onClick: (this: HTMLButtonElement, ev: MouseEvent | TouchEvent) => any, options?: {
280
291
  tooltip?: null | string | Node;
281
292
  tooltipPosition?: "left" | "right" | "top" | "bottom";
293
+ role?: "radio" | "checkbox" | "menuitemradio" | "menuitemcheckbox";
294
+ noStyling?: boolean;
282
295
  }, htmlOptions?: null | Partial<Record<"button" | "tooltip", Omit<HTMLOptions<any>, "tag">>>): HTMLButtonElement;
283
296
  }
284
297
  declare namespace ElementMenu {
@@ -18,6 +18,8 @@ declare namespace Layering {
18
18
  buttonGrid: "layering-button-grid";
19
19
  resetButton: "layering-reset-button";
20
20
  exitButton: "layering-exit-button";
21
+ hideButton: "layering-hide-button";
22
+ hideTooltip: "layering-hide-button-tooltip";
21
23
  lockButton: "layering-lock-button";
22
24
  assetHeader: "layering-asset-header";
23
25
  assetGrid: "layering-asset-grid";
@@ -64,6 +66,13 @@ declare namespace Layering {
64
66
  * @private
65
67
  */
66
68
  function _ResetClickListener(this: HTMLButtonElement, ev: Event): void;
69
+ /**
70
+ * Event listener for `click` events of the show hidden layers button
71
+ * @this {HTMLButtonElement}
72
+ * @param {Event} ev
73
+ * @private
74
+ */
75
+ function _ShowLayersClickListener(this: HTMLButtonElement, ev: Event): void;
67
76
  /**
68
77
  * Update the background colors of the `number`-based input elements, the color change depending on whether one is changing an asset- or layer-specific priority.
69
78
  * @private
@@ -62,10 +62,13 @@ declare function ServerPackItemPermissions(permissionItems: Partial<Record<`${As
62
62
  /**
63
63
  * Unpack the quartet of blocked, limited, favorited and hidden item permissions into a single object
64
64
  * @param {Pick<Partial<ServerAccountDataSynced>, "BlockItems" | "LimitedItems" | "FavoriteItems" | "HiddenItems">} data - The item permission data as received from the server
65
- * @param {Character} C - The character in question
66
- * @returns {Partial<Record<`${AssetGroupName}/${string}`, ItemPermissions>>} - The packed item permission data
65
+ * @param {boolean} onExtreme - If the expected difficulty is Extreme
66
+ * @returns {{ permissions: Partial<Record<`${AssetGroupName}/${string}`, ItemPermissions>>; shouldSync: boolean }} - The packed item permission data
67
67
  */
68
- declare function ServerUnPackItemPermissions(data: Pick<Partial<ServerAccountDataSynced>, "BlockItems" | "LimitedItems" | "FavoriteItems" | "HiddenItems">, C: Character): Partial<Record<`${AssetGroupName}/${string}`, ItemPermissions>>;
68
+ declare function ServerUnPackItemPermissions(data: Pick<Partial<ServerAccountDataSynced>, "BlockItems" | "LimitedItems" | "FavoriteItems" | "HiddenItems">, onExtreme: boolean): {
69
+ permissions: Partial<Record<`${AssetGroupName}/${string}`, ItemPermissions>>;
70
+ shouldSync: boolean;
71
+ };
69
72
  /**
70
73
  * Syncs player's favorite, blocked, limited and hidden items to the server
71
74
  * @returns {void} - Nothing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-stubs",
3
- "version": "106.0.0",
3
+ "version": "107.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/bananarama92/BC-stubs.git"