Files
Nitro_Render_V3/packages/api/src/nitro/session/ISessionDataManager.ts
T
simoleo89 87cf47847c feat(events,session): add React-friendly subscribe APIs and snapshot getters
Adds backwards-compatible primitives needed to consume the renderer from
React 19 hooks (useSyncExternalStore, use(), TanStack Query) without
re-architecting the event bus.

- EventDispatcher.subscribe(type, cb): () => void — unsubscriber-returning
  wrapper matching the useSyncExternalStore subscribe signature.
- CommunicationManager.subscribeMessage(eventCtor, handler): () => void —
  packet-stream equivalent.
- SessionDataManager.getUserDataSnapshot() and
  RoomSessionManager.getActiveRoomSessionSnapshot() — referentially-stable
  read-only views invalidated through new SESSION_DATA_UPDATED and
  ROOM_SESSION_UPDATED events.

All additive; existing addEventListener/removeEventListener / IRoomSession
APIs are unchanged. Bumps renderer to 2.1.0.
2026-05-10 19:16:32 +02:00

59 lines
2.1 KiB
TypeScript

import { Texture } from 'pixi.js';
import { IFurnitureData } from './IFurnitureData';
import { IGroupInformationManager } from './IGroupInformationManager';
import { IIgnoredUsersManager } from './IIgnoredUsersManager';
import { IProductData } from './IProductData';
import { IUserDataSnapshot } from './IUserDataSnapshot';
export interface ISessionDataManager
{
init(): Promise<void>;
getAllFurnitureData(): IFurnitureData[];
applyFurnitureDataOverrides(url: string): Promise<void>;
clearFurnitureDataOverrides(): void;
getFloorItemData(id: number): IFurnitureData;
getFloorItemDataByName(name: string): IFurnitureData;
getWallItemData(id: number): IFurnitureData;
getWallItemDataByName(name: string): IFurnitureData;
getProductData(type: string): IProductData;
getBadgeUrl(name: string): string;
getGroupBadgeUrl(name: string): string;
getBadgeImage(name: string): Texture;
getUserTags(roomUnitId: number): string[];
loadBadgeImage(name: string): string;
getGroupBadgeImage(name: string): Texture;
loadGroupBadgeImage(name: string): string;
hasSecurity(level: number): boolean;
giveRespect(userId: number): void;
givePetRespect(petId: number): void;
sendSpecialCommandMessage(text: string, styleId?: number): void;
ignoreUser(name: string): void;
unignoreUser(name: string): void;
isUserIgnored(name: string): boolean;
getGroupBadge(groupId: number): string;
userId: number;
userName: string;
figure: string;
gender: string;
realName: string;
ignoredUsersManager: IIgnoredUsersManager;
groupInformationManager: IGroupInformationManager;
respectsReceived: number;
respectsLeft: number;
respectsPetLeft: number;
canChangeName: boolean;
clubLevel: number;
securityLevel: number;
isAmbassador: boolean;
isNoob: boolean;
isRealNoob: boolean;
isSystemOpen: boolean;
isSystemShutdown: boolean;
isAuthenticHabbo: boolean;
isModerator: boolean;
isCameraFollowDisabled: boolean;
uiFlags: number;
tags: string[];
getUserDataSnapshot(): Readonly<IUserDataSnapshot>;
}