You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-20 07:26:18 +00:00
feat(communication): add housekeeping find-user-by-name packet pair
TS counterparts to Arcturus' new HK packet pair. Adds HousekeepingFindUserByNameComposer (OutgoingHeader 9100) and HousekeepingUserDetailEvent (IncomingHeader 9200) with a parser that wraps an optional HousekeepingUserDetailData. The data class follows the flat optional-trailing-field pattern (isMuted / isTradeLocked read under bytesAvailable guards) so the renderer stays compatible with a server that hasn't surfaced those manager APIs offline yet. The parser exposes `found: boolean` and `user: HousekeepingUserDetailData | null` so a callsite that gets a "user not found" reply can branch without having to read into an unpopulated data object — the composer writes `appendBoolean(false)` and stops, the parser sees the false and leaves `user` null. Headers 9100..9199 / 9200..9299 reserved for the rest of the HK packet surface. Composer + event registered in NitroMessages alongside the existing YouTube-room overrides. `yarn compile:fast` clean, vitest 138/138 green.
This commit is contained in:
@@ -7,6 +7,7 @@ import { ConfInvisStateMessageEvent } from './messages';
|
||||
import { HanditemBlockStateMessageEvent } from './messages';
|
||||
import { TranslationLanguagesEvent, TranslationLanguagesRequestComposer, TranslationResultEvent, TranslationTextRequestComposer } from './messages';
|
||||
import { YouTubeRoomBroadcastEvent, YouTubeRoomPlayComposer, YouTubeRoomSettingsComposer, YouTubeRoomSettingsEvent, YouTubeRoomWatchersEvent, YouTubeRoomWatchingComposer } from './messages';
|
||||
import { HousekeepingFindUserByNameComposer, HousekeepingUserDetailEvent } from './messages';
|
||||
export class NitroMessages implements IMessageConfiguration
|
||||
{
|
||||
private _events: Map<number, Function>;
|
||||
@@ -505,6 +506,9 @@ export class NitroMessages implements IMessageConfiguration
|
||||
this._events.set(IncomingHeader.YOUTUBE_ROOM_BROADCAST, YouTubeRoomBroadcastEvent);
|
||||
this._events.set(IncomingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsEvent);
|
||||
this._events.set(IncomingHeader.YOUTUBE_ROOM_WATCHERS, YouTubeRoomWatchersEvent);
|
||||
|
||||
// Housekeeping (in-client admin panel)
|
||||
this._events.set(IncomingHeader.HOUSEKEEPING_USER_DETAIL, HousekeepingUserDetailEvent);
|
||||
this._events.set(IncomingHeader.WIRED_REWARD, WiredRewardResultMessageEvent);
|
||||
this._events.set(IncomingHeader.WIRED_SAVE, WiredSaveSuccessEvent);
|
||||
this._events.set(IncomingHeader.WIRED_ERROR, WiredValidationErrorEvent);
|
||||
@@ -1255,6 +1259,9 @@ export class NitroMessages implements IMessageConfiguration
|
||||
this._composers.set(OutgoingHeader.YOUTUBE_ROOM_PLAY, YouTubeRoomPlayComposer);
|
||||
this._composers.set(OutgoingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsComposer);
|
||||
this._composers.set(OutgoingHeader.YOUTUBE_ROOM_WATCHING, YouTubeRoomWatchingComposer);
|
||||
|
||||
// Housekeeping (in-client admin panel)
|
||||
this._composers.set(OutgoingHeader.HOUSEKEEPING_FIND_USER_BY_NAME, HousekeepingFindUserByNameComposer);
|
||||
}
|
||||
|
||||
public get events(): Map<number, Function>
|
||||
|
||||
Reference in New Issue
Block a user