feat(communication): housekeeping rooms domain — 7 composers + 2 events

* Outgoing 9110-9116: find-room-by-id, search-rooms (exact|prefix),
  room-state (open|close toggle), mute-room, kick-all-from-room,
  transfer-room-ownership, delete-room.

* Incoming 9202 HousekeepingRoomDetailEvent + 9203 RoomListEvent.

* HousekeepingRoomData parser data class with the 11 IHousekeepingRoom
  fields. Single-room and list events share the same data class via
  composition.

`yarn compile:fast` clean.
This commit is contained in:
simoleo89
2026-05-24 11:24:51 +02:00
committed by simoleo89
parent c6c6cfe04b
commit 597cd2402f
18 changed files with 242 additions and 1 deletions
@@ -534,4 +534,11 @@ export class OutgoingHeader
public static HOUSEKEEPING_SET_USER_RANK = 9107;
public static HOUSEKEEPING_TRADE_LOCK_USER = 9108;
public static HOUSEKEEPING_RESET_USER_PASSWORD = 9109;
public static HOUSEKEEPING_FIND_ROOM_BY_ID = 9110;
public static HOUSEKEEPING_SEARCH_ROOMS = 9111;
public static HOUSEKEEPING_ROOM_STATE = 9112;
public static HOUSEKEEPING_MUTE_ROOM = 9113;
public static HOUSEKEEPING_KICK_ALL_FROM_ROOM = 9114;
public static HOUSEKEEPING_TRANSFER_ROOM_OWNERSHIP = 9115;
public static HOUSEKEEPING_DELETE_ROOM = 9116;
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingDeleteRoomComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingDeleteRoomComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingDeleteRoomComposer>;
constructor(roomId: number) { this._data = [roomId]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingFindRoomByIdComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingFindRoomByIdComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingFindRoomByIdComposer>;
constructor(roomId: number) { this._data = [roomId]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingKickAllFromRoomComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingKickAllFromRoomComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingKickAllFromRoomComposer>;
constructor(roomId: number) { this._data = [roomId]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingMuteRoomComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingMuteRoomComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingMuteRoomComposer>;
constructor(roomId: number, minutes: number) { this._data = [roomId, minutes]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingRoomStateComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingRoomStateComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingRoomStateComposer>;
constructor(roomId: number, open: boolean) { this._data = [roomId, open]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingSearchRoomsComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingSearchRoomsComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingSearchRoomsComposer>;
constructor(query: string, exactMatch: boolean, limit: number) { this._data = [query, exactMatch, limit]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -0,0 +1,11 @@
import { IMessageComposer } from '@nitrots/api';
export class HousekeepingTransferRoomOwnershipComposer implements IMessageComposer<ConstructorParameters<typeof HousekeepingTransferRoomOwnershipComposer>>
{
private _data: ConstructorParameters<typeof HousekeepingTransferRoomOwnershipComposer>;
constructor(roomId: number, newOwnerId: number) { this._data = [roomId, newOwnerId]; }
public getMessageArray() { return this._data; }
public dispose(): void { return; }
}
@@ -1,10 +1,17 @@
export * from './HousekeepingBanUserComposer';
export * from './HousekeepingDeleteRoomComposer';
export * from './HousekeepingFindRoomByIdComposer';
export * from './HousekeepingFindUserByIdComposer';
export * from './HousekeepingFindUserByNameComposer';
export * from './HousekeepingForceDisconnectUserComposer';
export * from './HousekeepingKickAllFromRoomComposer';
export * from './HousekeepingKickUserComposer';
export * from './HousekeepingMuteRoomComposer';
export * from './HousekeepingMuteUserComposer';
export * from './HousekeepingResetUserPasswordComposer';
export * from './HousekeepingRoomStateComposer';
export * from './HousekeepingSearchRoomsComposer';
export * from './HousekeepingSetUserRankComposer';
export * from './HousekeepingTradeLockUserComposer';
export * from './HousekeepingTransferRoomOwnershipComposer';
export * from './HousekeepingUnbanUserComposer';