From 370b1fc10067f1613e127bfc5956a4c6eefbbc29 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sun, 24 May 2026 11:00:05 +0200 Subject: [PATCH] feat(communication): housekeeping mute-user + kick-user composers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OutgoingHeader 9104 HousekeepingMuteUserComposer — (userId, reason, minutes). 9105 HousekeepingKickUserComposer — (userId, reason). Both ride the existing HousekeepingActionResultEvent for the ack, so no new parser is needed. vitest 138/138, `yarn compile:fast` clean. --- packages/communication/src/NitroMessages.ts | 4 +++- .../src/messages/outgoing/OutgoingHeader.ts | 2 ++ .../HousekeepingKickUserComposer.ts | 21 +++++++++++++++++++ .../HousekeepingMuteUserComposer.ts | 21 +++++++++++++++++++ .../messages/outgoing/housekeeping/index.ts | 2 ++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickUserComposer.ts create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteUserComposer.ts diff --git a/packages/communication/src/NitroMessages.ts b/packages/communication/src/NitroMessages.ts index 8ea871e..3eee3fe 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 { HousekeepingActionResultEvent, HousekeepingBanUserComposer, HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingUnbanUserComposer, HousekeepingUserDetailEvent } from './messages'; +import { HousekeepingActionResultEvent, HousekeepingBanUserComposer, HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingKickUserComposer, HousekeepingMuteUserComposer, HousekeepingUnbanUserComposer, HousekeepingUserDetailEvent } from './messages'; export class NitroMessages implements IMessageConfiguration { private _events: Map; @@ -1266,6 +1266,8 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.HOUSEKEEPING_FIND_USER_BY_ID, HousekeepingFindUserByIdComposer); this._composers.set(OutgoingHeader.HOUSEKEEPING_BAN_USER, HousekeepingBanUserComposer); this._composers.set(OutgoingHeader.HOUSEKEEPING_UNBAN_USER, HousekeepingUnbanUserComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_MUTE_USER, HousekeepingMuteUserComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_KICK_USER, HousekeepingKickUserComposer); } public get events(): Map diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index 511afe9..5c34a6d 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -528,4 +528,6 @@ export class OutgoingHeader public static HOUSEKEEPING_FIND_USER_BY_ID = 9101; public static HOUSEKEEPING_BAN_USER = 9102; public static HOUSEKEEPING_UNBAN_USER = 9103; + public static HOUSEKEEPING_MUTE_USER = 9104; + public static HOUSEKEEPING_KICK_USER = 9105; } diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickUserComposer.ts new file mode 100644 index 0000000..30b3d36 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingKickUserComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, reason: string) + { + this._data = [userId, reason]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteUserComposer.ts new file mode 100644 index 0000000..d8c268b --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingMuteUserComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, reason: string, minutes: number) + { + this._data = [userId, reason, minutes]; + } + + 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 7b9da73..a7058b3 100644 --- a/packages/communication/src/messages/outgoing/housekeeping/index.ts +++ b/packages/communication/src/messages/outgoing/housekeeping/index.ts @@ -1,4 +1,6 @@ export * from './HousekeepingBanUserComposer'; export * from './HousekeepingFindUserByIdComposer'; export * from './HousekeepingFindUserByNameComposer'; +export * from './HousekeepingKickUserComposer'; +export * from './HousekeepingMuteUserComposer'; export * from './HousekeepingUnbanUserComposer';