From 386bf79ddcd83d35b965c00fa145bb6a0d52a8be Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sun, 24 May 2026 11:30:53 +0200 Subject: [PATCH] =?UTF-8?q?feat(communication):=20housekeeping=20economy?= =?UTF-8?q?=20=E2=80=94=204=20composers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OutgoingHeader 9117-9120: give-credits, give-currency (generic across duckets/diamonds/seasonal via a currencyType int), grant-item, set-hc-subscription. All four ride the existing HousekeepingActionResultEvent — no new parser needed. `yarn compile:fast` clean. --- packages/communication/src/NitroMessages.ts | 6 +++++- .../src/messages/outgoing/OutgoingHeader.ts | 4 ++++ .../housekeeping/HousekeepingGiveCreditsComposer.ts | 11 +++++++++++ .../housekeeping/HousekeepingGiveCurrencyComposer.ts | 11 +++++++++++ .../housekeeping/HousekeepingGrantItemComposer.ts | 11 +++++++++++ .../HousekeepingSetHcSubscriptionComposer.ts | 11 +++++++++++ .../src/messages/outgoing/housekeeping/index.ts | 4 ++++ 7 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCreditsComposer.ts create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCurrencyComposer.ts create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingGrantItemComposer.ts create mode 100644 packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetHcSubscriptionComposer.ts diff --git a/packages/communication/src/NitroMessages.ts b/packages/communication/src/NitroMessages.ts index d9ae109..bab22d9 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, HousekeepingDeleteRoomComposer, HousekeepingFindRoomByIdComposer, HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingForceDisconnectUserComposer, HousekeepingKickAllFromRoomComposer, HousekeepingKickUserComposer, HousekeepingMuteRoomComposer, HousekeepingMuteUserComposer, HousekeepingResetUserPasswordComposer, HousekeepingRoomDetailEvent, HousekeepingRoomListEvent, HousekeepingRoomStateComposer, HousekeepingSearchRoomsComposer, HousekeepingSetUserRankComposer, HousekeepingTradeLockUserComposer, HousekeepingTransferRoomOwnershipComposer, HousekeepingUnbanUserComposer, HousekeepingUserDetailEvent } from './messages'; +import { HousekeepingActionResultEvent, HousekeepingBanUserComposer, HousekeepingDeleteRoomComposer, HousekeepingFindRoomByIdComposer, HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingForceDisconnectUserComposer, HousekeepingGiveCreditsComposer, HousekeepingGiveCurrencyComposer, HousekeepingGrantItemComposer, HousekeepingKickAllFromRoomComposer, HousekeepingKickUserComposer, HousekeepingMuteRoomComposer, HousekeepingMuteUserComposer, HousekeepingResetUserPasswordComposer, HousekeepingRoomDetailEvent, HousekeepingRoomListEvent, HousekeepingRoomStateComposer, HousekeepingSearchRoomsComposer, HousekeepingSetHcSubscriptionComposer, HousekeepingSetUserRankComposer, HousekeepingTradeLockUserComposer, HousekeepingTransferRoomOwnershipComposer, HousekeepingUnbanUserComposer, HousekeepingUserDetailEvent } from './messages'; export class NitroMessages implements IMessageConfiguration { private _events: Map; @@ -1281,6 +1281,10 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.HOUSEKEEPING_KICK_ALL_FROM_ROOM, HousekeepingKickAllFromRoomComposer); this._composers.set(OutgoingHeader.HOUSEKEEPING_TRANSFER_ROOM_OWNERSHIP, HousekeepingTransferRoomOwnershipComposer); this._composers.set(OutgoingHeader.HOUSEKEEPING_DELETE_ROOM, HousekeepingDeleteRoomComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_GIVE_CREDITS, HousekeepingGiveCreditsComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_GIVE_CURRENCY, HousekeepingGiveCurrencyComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_GRANT_ITEM, HousekeepingGrantItemComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_SET_HC_SUBSCRIPTION, HousekeepingSetHcSubscriptionComposer); } public get events(): Map diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index dacc8fb..c9a220e 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -541,4 +541,8 @@ export class OutgoingHeader public static HOUSEKEEPING_KICK_ALL_FROM_ROOM = 9114; public static HOUSEKEEPING_TRANSFER_ROOM_OWNERSHIP = 9115; public static HOUSEKEEPING_DELETE_ROOM = 9116; + public static HOUSEKEEPING_GIVE_CREDITS = 9117; + public static HOUSEKEEPING_GIVE_CURRENCY = 9118; + public static HOUSEKEEPING_GRANT_ITEM = 9119; + public static HOUSEKEEPING_SET_HC_SUBSCRIPTION = 9120; } diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCreditsComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCreditsComposer.ts new file mode 100644 index 0000000..7ab6828 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCreditsComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingGiveCreditsComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, amount: number) { this._data = [userId, amount]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCurrencyComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCurrencyComposer.ts new file mode 100644 index 0000000..5aedad5 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGiveCurrencyComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingGiveCurrencyComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, currencyType: number, amount: number) { this._data = [userId, currencyType, amount]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGrantItemComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGrantItemComposer.ts new file mode 100644 index 0000000..9529fbe --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGrantItemComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingGrantItemComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, itemId: number, quantity: number) { this._data = [userId, itemId, quantity]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetHcSubscriptionComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetHcSubscriptionComposer.ts new file mode 100644 index 0000000..568081d --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetHcSubscriptionComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingSetHcSubscriptionComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, days: number) { this._data = [userId, days]; } + + 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 5fed902..7e71234 100644 --- a/packages/communication/src/messages/outgoing/housekeeping/index.ts +++ b/packages/communication/src/messages/outgoing/housekeeping/index.ts @@ -1,6 +1,9 @@ export * from './HousekeepingBanUserComposer'; export * from './HousekeepingDeleteRoomComposer'; export * from './HousekeepingFindRoomByIdComposer'; +export * from './HousekeepingGiveCreditsComposer'; +export * from './HousekeepingGiveCurrencyComposer'; +export * from './HousekeepingGrantItemComposer'; export * from './HousekeepingFindUserByIdComposer'; export * from './HousekeepingFindUserByNameComposer'; export * from './HousekeepingForceDisconnectUserComposer'; @@ -11,6 +14,7 @@ export * from './HousekeepingMuteUserComposer'; export * from './HousekeepingResetUserPasswordComposer'; export * from './HousekeepingRoomStateComposer'; export * from './HousekeepingSearchRoomsComposer'; +export * from './HousekeepingSetHcSubscriptionComposer'; export * from './HousekeepingSetUserRankComposer'; export * from './HousekeepingTradeLockUserComposer'; export * from './HousekeepingTransferRoomOwnershipComposer';