From 3113baf55972d7229a24c2a1d2ae6ff04e709585 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sun, 24 May 2026 10:47:59 +0200 Subject: [PATCH] feat(communication): housekeeping find-user-by-id composer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OutgoingHeader.HOUSEKEEPING_FIND_USER_BY_ID = 9101 with a one-int payload. The response side reuses HousekeepingUserDetailEvent (no new parser) — find-by-id and find-by-name converge on the same shape because the server has nothing different to say about a user found via numeric id vs. via username lookup. vitest 138/138, `yarn compile:fast` clean. --- packages/communication/src/NitroMessages.ts | 3 ++- .../src/messages/outgoing/OutgoingHeader.ts | 1 + .../HousekeepingFindUserByIdComposer.ts | 21 +++++++++++++++++++ .../messages/outgoing/housekeeping/index.ts | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByIdComposer.ts diff --git a/packages/communication/src/NitroMessages.ts b/packages/communication/src/NitroMessages.ts index c91d3f7..2b4f35c 100644 --- a/packages/communication/src/NitroMessages.ts +++ b/packages/communication/src/NitroMessages.ts @@ -7,7 +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'; +import { HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingUserDetailEvent } from './messages'; export class NitroMessages implements IMessageConfiguration { private _events: Map; @@ -1262,6 +1262,7 @@ export class NitroMessages implements IMessageConfiguration // Housekeeping (in-client admin panel) this._composers.set(OutgoingHeader.HOUSEKEEPING_FIND_USER_BY_NAME, HousekeepingFindUserByNameComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_FIND_USER_BY_ID, HousekeepingFindUserByIdComposer); } public get events(): Map diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index 58e5471..bdc599d 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -525,4 +525,5 @@ export class OutgoingHeader // Housekeeping (in-client admin panel) — IDs 9100..9199 reserved public static HOUSEKEEPING_FIND_USER_BY_NAME = 9100; + public static HOUSEKEEPING_FIND_USER_BY_ID = 9101; } diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByIdComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByIdComposer.ts new file mode 100644 index 0000000..243a261 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByIdComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingFindUserByIdComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number) + { + this._data = [userId]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/index.ts b/packages/communication/src/messages/outgoing/housekeeping/index.ts index c38ee13..4eaf71f 100644 --- a/packages/communication/src/messages/outgoing/housekeeping/index.ts +++ b/packages/communication/src/messages/outgoing/housekeeping/index.ts @@ -1 +1,2 @@ +export * from './HousekeepingFindUserByIdComposer'; export * from './HousekeepingFindUserByNameComposer';