diff --git a/packages/communication/src/NitroMessages.ts b/packages/communication/src/NitroMessages.ts index 3caca87..845b7d3 100644 --- a/packages/communication/src/NitroMessages.ts +++ b/packages/communication/src/NitroMessages.ts @@ -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 { HousekeepingActionLogEvent, HousekeepingActionResultEvent, HousekeepingBanUserComposer, HousekeepingDashboardEvent, HousekeepingDeleteRoomComposer, HousekeepingFindRoomByIdComposer, HousekeepingFindUserByIdComposer, HousekeepingFindUserByNameComposer, HousekeepingForceDisconnectUserComposer, HousekeepingGetDashboardComposer, HousekeepingGiveCreditsComposer, HousekeepingGiveCurrencyComposer, HousekeepingGrantItemComposer, HousekeepingKickAllFromRoomComposer, HousekeepingKickUserComposer, HousekeepingListActionLogComposer, HousekeepingMuteRoomComposer, HousekeepingMuteUserComposer, HousekeepingResetUserPasswordComposer, HousekeepingRoomDetailEvent, HousekeepingRoomListEvent, HousekeepingRoomStateComposer, HousekeepingSearchRoomsComposer, HousekeepingSendHotelAlertComposer, HousekeepingSetHcSubscriptionComposer, HousekeepingSetUserRankComposer, HousekeepingTradeLockUserComposer, HousekeepingTransferRoomOwnershipComposer, HousekeepingUnbanUserComposer, HousekeepingUserDetailEvent } from './messages'; export class NitroMessages implements IMessageConfiguration { private _events: Map; @@ -505,6 +506,14 @@ 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.HOUSEKEEPING_ACTION_RESULT, HousekeepingActionResultEvent); + this._events.set(IncomingHeader.HOUSEKEEPING_ROOM_DETAIL, HousekeepingRoomDetailEvent); + this._events.set(IncomingHeader.HOUSEKEEPING_ROOM_LIST, HousekeepingRoomListEvent); + this._events.set(IncomingHeader.HOUSEKEEPING_DASHBOARD, HousekeepingDashboardEvent); + this._events.set(IncomingHeader.HOUSEKEEPING_ACTION_LOG, HousekeepingActionLogEvent); this._events.set(IncomingHeader.WIRED_REWARD, WiredRewardResultMessageEvent); this._events.set(IncomingHeader.WIRED_SAVE, WiredSaveSuccessEvent); this._events.set(IncomingHeader.WIRED_ERROR, WiredValidationErrorEvent); @@ -1255,6 +1264,32 @@ 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); + 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); + this._composers.set(OutgoingHeader.HOUSEKEEPING_FORCE_DISCONNECT_USER, HousekeepingForceDisconnectUserComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_SET_USER_RANK, HousekeepingSetUserRankComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_TRADE_LOCK_USER, HousekeepingTradeLockUserComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_RESET_USER_PASSWORD, HousekeepingResetUserPasswordComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_FIND_ROOM_BY_ID, HousekeepingFindRoomByIdComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_SEARCH_ROOMS, HousekeepingSearchRoomsComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_ROOM_STATE, HousekeepingRoomStateComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_MUTE_ROOM, HousekeepingMuteRoomComposer); + 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); + this._composers.set(OutgoingHeader.HOUSEKEEPING_SEND_HOTEL_ALERT, HousekeepingSendHotelAlertComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_GET_DASHBOARD, HousekeepingGetDashboardComposer); + this._composers.set(OutgoingHeader.HOUSEKEEPING_LIST_ACTION_LOG, HousekeepingListActionLogComposer); } public get events(): Map diff --git a/packages/communication/src/messages/incoming/IncomingHeader.ts b/packages/communication/src/messages/incoming/IncomingHeader.ts index 70dbad3..bd60165 100644 --- a/packages/communication/src/messages/incoming/IncomingHeader.ts +++ b/packages/communication/src/messages/incoming/IncomingHeader.ts @@ -503,4 +503,12 @@ export class IncomingHeader public static YOUTUBE_ROOM_BROADCAST = 8001; public static YOUTUBE_ROOM_WATCHERS = 8002; public static YOUTUBE_ROOM_SETTINGS = 8003; + + // Housekeeping (in-client admin panel) — IDs 9200..9299 reserved + public static HOUSEKEEPING_USER_DETAIL = 9200; + public static HOUSEKEEPING_ACTION_RESULT = 9201; + public static HOUSEKEEPING_ROOM_DETAIL = 9202; + public static HOUSEKEEPING_ROOM_LIST = 9203; + public static HOUSEKEEPING_DASHBOARD = 9204; + public static HOUSEKEEPING_ACTION_LOG = 9205; } diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionLogEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionLogEvent.ts new file mode 100644 index 0000000..72a5517 --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionLogEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingActionLogParser } from '../../parser'; + +export class HousekeepingActionLogEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingActionLogParser); + } + + public getParser(): HousekeepingActionLogParser + { + return this.parser as HousekeepingActionLogParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionResultEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionResultEvent.ts new file mode 100644 index 0000000..cf197ff --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingActionResultEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingActionResultParser } from '../../parser'; + +export class HousekeepingActionResultEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingActionResultParser); + } + + public getParser(): HousekeepingActionResultParser + { + return this.parser as HousekeepingActionResultParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingDashboardEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingDashboardEvent.ts new file mode 100644 index 0000000..61f2c6e --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingDashboardEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingDashboardParser } from '../../parser'; + +export class HousekeepingDashboardEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingDashboardParser); + } + + public getParser(): HousekeepingDashboardParser + { + return this.parser as HousekeepingDashboardParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomDetailEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomDetailEvent.ts new file mode 100644 index 0000000..2b5c766 --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomDetailEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingRoomDetailParser } from '../../parser'; + +export class HousekeepingRoomDetailEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingRoomDetailParser); + } + + public getParser(): HousekeepingRoomDetailParser + { + return this.parser as HousekeepingRoomDetailParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomListEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomListEvent.ts new file mode 100644 index 0000000..ecffe28 --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingRoomListEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingRoomListParser } from '../../parser'; + +export class HousekeepingRoomListEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingRoomListParser); + } + + public getParser(): HousekeepingRoomListParser + { + return this.parser as HousekeepingRoomListParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/HousekeepingUserDetailEvent.ts b/packages/communication/src/messages/incoming/housekeeping/HousekeepingUserDetailEvent.ts new file mode 100644 index 0000000..2db1e82 --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/HousekeepingUserDetailEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { HousekeepingUserDetailParser } from '../../parser'; + +export class HousekeepingUserDetailEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, HousekeepingUserDetailParser); + } + + public getParser(): HousekeepingUserDetailParser + { + return this.parser as HousekeepingUserDetailParser; + } +} diff --git a/packages/communication/src/messages/incoming/housekeeping/index.ts b/packages/communication/src/messages/incoming/housekeeping/index.ts new file mode 100644 index 0000000..16d9727 --- /dev/null +++ b/packages/communication/src/messages/incoming/housekeeping/index.ts @@ -0,0 +1,6 @@ +export * from './HousekeepingActionLogEvent'; +export * from './HousekeepingActionResultEvent'; +export * from './HousekeepingDashboardEvent'; +export * from './HousekeepingRoomDetailEvent'; +export * from './HousekeepingRoomListEvent'; +export * from './HousekeepingUserDetailEvent'; diff --git a/packages/communication/src/messages/incoming/index.ts b/packages/communication/src/messages/incoming/index.ts index 5584383..8620b9e 100644 --- a/packages/communication/src/messages/incoming/index.ts +++ b/packages/communication/src/messages/incoming/index.ts @@ -24,6 +24,7 @@ export * from './group'; export * from './groupforums'; export * from './handshake'; export * from './help'; +export * from './housekeeping'; export * from './inventory'; export * from './inventory/achievements'; export * from './inventory/avatareffect'; diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index 80dc117..532c562 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -522,4 +522,30 @@ export class OutgoingHeader public static YOUTUBE_ROOM_PLAY = 8001; public static YOUTUBE_ROOM_WATCHING = 8002; public static YOUTUBE_ROOM_SETTINGS = 8003; + + // 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; + public static HOUSEKEEPING_BAN_USER = 9102; + public static HOUSEKEEPING_UNBAN_USER = 9103; + public static HOUSEKEEPING_MUTE_USER = 9104; + public static HOUSEKEEPING_KICK_USER = 9105; + public static HOUSEKEEPING_FORCE_DISCONNECT_USER = 9106; + 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; + 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; + public static HOUSEKEEPING_SEND_HOTEL_ALERT = 9121; + public static HOUSEKEEPING_GET_DASHBOARD = 9122; + public static HOUSEKEEPING_LIST_ACTION_LOG = 9123; } diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingBanUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingBanUserComposer.ts new file mode 100644 index 0000000..e5d31db --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingBanUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingBanUserComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, reason: string, hours: number) + { + this._data = [userId, reason, hours]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingDeleteRoomComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingDeleteRoomComposer.ts new file mode 100644 index 0000000..9c22813 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingDeleteRoomComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingDeleteRoomComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number) { this._data = [roomId]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindRoomByIdComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindRoomByIdComposer.ts new file mode 100644 index 0000000..83d46f8 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindRoomByIdComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingFindRoomByIdComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number) { this._data = [roomId]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} 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/HousekeepingFindUserByNameComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByNameComposer.ts new file mode 100644 index 0000000..82bcfd6 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingFindUserByNameComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingFindUserByNameComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(username: string) + { + this._data = [username]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingForceDisconnectUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingForceDisconnectUserComposer.ts new file mode 100644 index 0000000..6e4b38a --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingForceDisconnectUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingForceDisconnectUserComposer 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/HousekeepingGetDashboardComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGetDashboardComposer.ts new file mode 100644 index 0000000..4158604 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingGetDashboardComposer.ts @@ -0,0 +1,7 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingGetDashboardComposer implements IMessageComposer<[]> +{ + public getMessageArray(): [] { return []; } + public dispose(): void { return; } +} 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/HousekeepingKickAllFromRoomComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickAllFromRoomComposer.ts new file mode 100644 index 0000000..2f635d0 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingKickAllFromRoomComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingKickAllFromRoomComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number) { this._data = [roomId]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} 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/HousekeepingListActionLogComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingListActionLogComposer.ts new file mode 100644 index 0000000..476f1eb --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingListActionLogComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingListActionLogComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(limit: number) { this._data = [limit]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteRoomComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteRoomComposer.ts new file mode 100644 index 0000000..df3efc2 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingMuteRoomComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingMuteRoomComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number, minutes: number) { this._data = [roomId, minutes]; } + + 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/HousekeepingResetUserPasswordComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingResetUserPasswordComposer.ts new file mode 100644 index 0000000..f7a0bb8 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingResetUserPasswordComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingResetUserPasswordComposer 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/HousekeepingRoomStateComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingRoomStateComposer.ts new file mode 100644 index 0000000..b375ccb --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingRoomStateComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingRoomStateComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number, open: boolean) { this._data = [roomId, open]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSearchRoomsComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSearchRoomsComposer.ts new file mode 100644 index 0000000..39977d0 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSearchRoomsComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingSearchRoomsComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(query: string, exactMatch: boolean, limit: number) { this._data = [query, exactMatch, limit]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSendHotelAlertComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSendHotelAlertComposer.ts new file mode 100644 index 0000000..9e400ad --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSendHotelAlertComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingSendHotelAlertComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(message: string) { this._data = [message]; } + + 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/HousekeepingSetUserRankComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetUserRankComposer.ts new file mode 100644 index 0000000..5b2fe5c --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingSetUserRankComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingSetUserRankComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, rankId: number) + { + this._data = [userId, rankId]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTradeLockUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTradeLockUserComposer.ts new file mode 100644 index 0000000..244f660 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTradeLockUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingTradeLockUserComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(userId: number, hours: number, reason: string) + { + this._data = [userId, hours, reason]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTransferRoomOwnershipComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTransferRoomOwnershipComposer.ts new file mode 100644 index 0000000..1a01f0d --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingTransferRoomOwnershipComposer.ts @@ -0,0 +1,11 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingTransferRoomOwnershipComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(roomId: number, newOwnerId: number) { this._data = [roomId, newOwnerId]; } + + public getMessageArray() { return this._data; } + public dispose(): void { return; } +} diff --git a/packages/communication/src/messages/outgoing/housekeeping/HousekeepingUnbanUserComposer.ts b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingUnbanUserComposer.ts new file mode 100644 index 0000000..eee3f38 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/HousekeepingUnbanUserComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class HousekeepingUnbanUserComposer 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 new file mode 100644 index 0000000..04262b4 --- /dev/null +++ b/packages/communication/src/messages/outgoing/housekeeping/index.ts @@ -0,0 +1,24 @@ +export * from './HousekeepingBanUserComposer'; +export * from './HousekeepingDeleteRoomComposer'; +export * from './HousekeepingFindRoomByIdComposer'; +export * from './HousekeepingFindUserByIdComposer'; +export * from './HousekeepingFindUserByNameComposer'; +export * from './HousekeepingForceDisconnectUserComposer'; +export * from './HousekeepingGetDashboardComposer'; +export * from './HousekeepingGiveCreditsComposer'; +export * from './HousekeepingGiveCurrencyComposer'; +export * from './HousekeepingGrantItemComposer'; +export * from './HousekeepingKickAllFromRoomComposer'; +export * from './HousekeepingKickUserComposer'; +export * from './HousekeepingListActionLogComposer'; +export * from './HousekeepingMuteRoomComposer'; +export * from './HousekeepingMuteUserComposer'; +export * from './HousekeepingResetUserPasswordComposer'; +export * from './HousekeepingRoomStateComposer'; +export * from './HousekeepingSearchRoomsComposer'; +export * from './HousekeepingSendHotelAlertComposer'; +export * from './HousekeepingSetHcSubscriptionComposer'; +export * from './HousekeepingSetUserRankComposer'; +export * from './HousekeepingTradeLockUserComposer'; +export * from './HousekeepingTransferRoomOwnershipComposer'; +export * from './HousekeepingUnbanUserComposer'; diff --git a/packages/communication/src/messages/outgoing/index.ts b/packages/communication/src/messages/outgoing/index.ts index 10e3549..131d0dd 100644 --- a/packages/communication/src/messages/outgoing/index.ts +++ b/packages/communication/src/messages/outgoing/index.ts @@ -21,6 +21,7 @@ export * from './group'; export * from './groupforums'; export * from './handshake'; export * from './help'; +export * from './housekeeping'; export * from './inventory'; export * from './inventory/avatareffect'; export * from './inventory/badges'; diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogEntryData.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogEntryData.ts new file mode 100644 index 0000000..7d8028e --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogEntryData.ts @@ -0,0 +1,42 @@ +import { IMessageDataWrapper } from '@nitrots/api'; + +export class HousekeepingActionLogEntryData +{ + private _id: number = 0; + private _timestamp: number = 0; + private _actorId: number = 0; + private _actorName: string = ''; + private _targetType: string = 'user'; + private _targetId: number = 0; + private _targetLabel: string = ''; + private _action: string = ''; + private _detail: string = ''; + private _success: boolean = true; + + constructor(wrapper: IMessageDataWrapper) + { + if(!wrapper) throw new Error('invalid_wrapper'); + + this._id = wrapper.readInt(); + this._timestamp = wrapper.readInt(); + this._actorId = wrapper.readInt(); + this._actorName = wrapper.readString(); + this._targetType = wrapper.readString(); + this._targetId = wrapper.readInt(); + this._targetLabel = wrapper.readString(); + this._action = wrapper.readString(); + this._detail = wrapper.readString(); + this._success = wrapper.readBoolean(); + } + + public get id(): number { return this._id; } + public get timestamp(): number { return this._timestamp; } + public get actorId(): number { return this._actorId; } + public get actorName(): string { return this._actorName; } + public get targetType(): string { return this._targetType; } + public get targetId(): number { return this._targetId; } + public get targetLabel(): string { return this._targetLabel; } + public get action(): string { return this._action; } + public get detail(): string { return this._detail; } + public get success(): boolean { return this._success; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogParser.ts new file mode 100644 index 0000000..cec0201 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionLogParser.ts @@ -0,0 +1,27 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; +import { HousekeepingActionLogEntryData } from './HousekeepingActionLogEntryData'; + +export class HousekeepingActionLogParser implements IMessageParser +{ + private _entries: HousekeepingActionLogEntryData[] = []; + + public flush(): boolean + { + this._entries = []; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + const count = wrapper.readInt(); + + for(let i = 0; i < count; i++) this._entries.push(new HousekeepingActionLogEntryData(wrapper)); + + return true; + } + + public get entries(): HousekeepingActionLogEntryData[] { return this._entries; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingActionResultParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionResultParser.ts new file mode 100644 index 0000000..57ef31f --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingActionResultParser.ts @@ -0,0 +1,42 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +/** + * Generic ack for any housekeeping action (ban, mute, kick, give-credits, + * room-close, …). Carries an `actionKey` string so a single event handler + * can multiplex over many in-flight actions and resolve the right Promise + * via an `accept` predicate. + */ +export class HousekeepingActionResultParser implements IMessageParser +{ + private _actionKey: string = ''; + private _ok: boolean = false; + private _actionId: number = 0; + private _message: string = ''; + + public flush(): boolean + { + this._actionKey = ''; + this._ok = false; + this._actionId = 0; + this._message = ''; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._actionKey = wrapper.readString(); + this._ok = wrapper.readBoolean(); + this._actionId = wrapper.readInt(); + this._message = wrapper.readString(); + + return true; + } + + public get actionKey(): string { return this._actionKey; } + public get ok(): boolean { return this._ok; } + public get actionId(): number { return this._actionId; } + public get message(): string { return this._message; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingDashboardParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingDashboardParser.ts new file mode 100644 index 0000000..cec54c2 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingDashboardParser.ts @@ -0,0 +1,60 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +export class HousekeepingDashboardParser implements IMessageParser +{ + private _onlineUsers: number = 0; + private _totalUsers: number = 0; + private _activeRooms: number = 0; + private _totalRooms: number = 0; + private _peakOnlineToday: number = 0; + private _peakOnlineAllTime: number = 0; + private _pendingTickets: number = 0; + private _sanctionsLast24h: number = 0; + private _serverUptimeSeconds: number = 0; + private _serverVersion: string = ''; + + public flush(): boolean + { + this._onlineUsers = 0; + this._totalUsers = 0; + this._activeRooms = 0; + this._totalRooms = 0; + this._peakOnlineToday = 0; + this._peakOnlineAllTime = 0; + this._pendingTickets = 0; + this._sanctionsLast24h = 0; + this._serverUptimeSeconds = 0; + this._serverVersion = ''; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._onlineUsers = wrapper.readInt(); + this._totalUsers = wrapper.readInt(); + this._activeRooms = wrapper.readInt(); + this._totalRooms = wrapper.readInt(); + this._peakOnlineToday = wrapper.readInt(); + this._peakOnlineAllTime = wrapper.readInt(); + this._pendingTickets = wrapper.readInt(); + this._sanctionsLast24h = wrapper.readInt(); + this._serverUptimeSeconds = wrapper.readInt(); + this._serverVersion = wrapper.readString(); + + return true; + } + + public get onlineUsers(): number { return this._onlineUsers; } + public get totalUsers(): number { return this._totalUsers; } + public get activeRooms(): number { return this._activeRooms; } + public get totalRooms(): number { return this._totalRooms; } + public get peakOnlineToday(): number { return this._peakOnlineToday; } + public get peakOnlineAllTime(): number { return this._peakOnlineAllTime; } + public get pendingTickets(): number { return this._pendingTickets; } + public get sanctionsLast24h(): number { return this._sanctionsLast24h; } + public get serverUptimeSeconds(): number { return this._serverUptimeSeconds; } + public get serverVersion(): string { return this._serverVersion; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomData.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomData.ts new file mode 100644 index 0000000..97c0d68 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomData.ts @@ -0,0 +1,45 @@ +import { IMessageDataWrapper } from '@nitrots/api'; + +export class HousekeepingRoomData +{ + private _id: number = 0; + private _name: string = ''; + private _description: string = ''; + private _ownerId: number = 0; + private _ownerName: string = ''; + private _userCount: number = 0; + private _maxUsers: number = 0; + private _isLocked: boolean = false; + private _isMuted: boolean = false; + private _isPublic: boolean = false; + private _createdAt: number = 0; + + constructor(wrapper: IMessageDataWrapper) + { + if(!wrapper) throw new Error('invalid_wrapper'); + + this._id = wrapper.readInt(); + this._name = wrapper.readString(); + this._description = wrapper.readString(); + this._ownerId = wrapper.readInt(); + this._ownerName = wrapper.readString(); + this._userCount = wrapper.readInt(); + this._maxUsers = wrapper.readInt(); + this._isLocked = wrapper.readBoolean(); + this._isMuted = wrapper.readBoolean(); + this._isPublic = wrapper.readBoolean(); + this._createdAt = wrapper.readInt(); + } + + public get id(): number { return this._id; } + public get name(): string { return this._name; } + public get description(): string { return this._description; } + public get ownerId(): number { return this._ownerId; } + public get ownerName(): string { return this._ownerName; } + public get userCount(): number { return this._userCount; } + public get maxUsers(): number { return this._maxUsers; } + public get isLocked(): boolean { return this._isLocked; } + public get isMuted(): boolean { return this._isMuted; } + public get isPublic(): boolean { return this._isPublic; } + public get createdAt(): number { return this._createdAt; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomDetailParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomDetailParser.ts new file mode 100644 index 0000000..dfebd6a --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomDetailParser.ts @@ -0,0 +1,30 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; +import { HousekeepingRoomData } from './HousekeepingRoomData'; + +export class HousekeepingRoomDetailParser implements IMessageParser +{ + private _found: boolean = false; + private _room: HousekeepingRoomData | null = null; + + public flush(): boolean + { + this._found = false; + this._room = null; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._found = wrapper.readBoolean(); + + if(this._found) this._room = new HousekeepingRoomData(wrapper); + + return true; + } + + public get found(): boolean { return this._found; } + public get room(): HousekeepingRoomData | null { return this._room; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomListParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomListParser.ts new file mode 100644 index 0000000..de81ac2 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingRoomListParser.ts @@ -0,0 +1,27 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; +import { HousekeepingRoomData } from './HousekeepingRoomData'; + +export class HousekeepingRoomListParser implements IMessageParser +{ + private _rooms: HousekeepingRoomData[] = []; + + public flush(): boolean + { + this._rooms = []; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + const count = wrapper.readInt(); + + for(let i = 0; i < count; i++) this._rooms.push(new HousekeepingRoomData(wrapper)); + + return true; + } + + public get rooms(): HousekeepingRoomData[] { return this._rooms; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailData.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailData.ts new file mode 100644 index 0000000..f387dd2 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailData.ts @@ -0,0 +1,61 @@ +import { IMessageDataWrapper } from '@nitrots/api'; + +export class HousekeepingUserDetailData +{ + private _id: number = 0; + private _username: string = ''; + private _motto: string = ''; + private _figure: string = ''; + private _rank: number = 0; + private _rankName: string = ''; + private _online: boolean = false; + private _lastOnlineAt: number = 0; + private _creditsBalance: number = 0; + private _ducketsBalance: number = 0; + private _diamondsBalance: number = 0; + private _email: string = ''; + private _ipLast: string = ''; + private _isBanned: boolean = false; + private _isMuted: boolean = false; + private _isTradeLocked: boolean = false; + + constructor(wrapper: IMessageDataWrapper) + { + if(!wrapper) throw new Error('invalid_wrapper'); + + this._id = wrapper.readInt(); + this._username = wrapper.readString(); + this._motto = wrapper.readString(); + this._figure = wrapper.readString(); + this._rank = wrapper.readInt(); + this._rankName = wrapper.readString(); + this._online = wrapper.readBoolean(); + this._lastOnlineAt = wrapper.readInt(); + this._creditsBalance = wrapper.readInt(); + this._ducketsBalance = wrapper.readInt(); + this._diamondsBalance = wrapper.readInt(); + this._email = wrapper.readString(); + this._ipLast = wrapper.readString(); + this._isBanned = wrapper.readBoolean(); + + if(wrapper.bytesAvailable) this._isMuted = wrapper.readBoolean(); + if(wrapper.bytesAvailable) this._isTradeLocked = wrapper.readBoolean(); + } + + public get id(): number { return this._id; } + public get username(): string { return this._username; } + public get motto(): string { return this._motto; } + public get figure(): string { return this._figure; } + public get rank(): number { return this._rank; } + public get rankName(): string { return this._rankName; } + public get online(): boolean { return this._online; } + public get lastOnlineAt(): number { return this._lastOnlineAt; } + public get creditsBalance(): number { return this._creditsBalance; } + public get ducketsBalance(): number { return this._ducketsBalance; } + public get diamondsBalance(): number { return this._diamondsBalance; } + public get email(): string { return this._email; } + public get ipLast(): string { return this._ipLast; } + public get isBanned(): boolean { return this._isBanned; } + public get isMuted(): boolean { return this._isMuted; } + public get isTradeLocked(): boolean { return this._isTradeLocked; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailParser.ts b/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailParser.ts new file mode 100644 index 0000000..d20e5fd --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/HousekeepingUserDetailParser.ts @@ -0,0 +1,30 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; +import { HousekeepingUserDetailData } from './HousekeepingUserDetailData'; + +export class HousekeepingUserDetailParser implements IMessageParser +{ + private _found: boolean = false; + private _user: HousekeepingUserDetailData | null = null; + + public flush(): boolean + { + this._found = false; + this._user = null; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._found = wrapper.readBoolean(); + + if(this._found) this._user = new HousekeepingUserDetailData(wrapper); + + return true; + } + + public get found(): boolean { return this._found; } + public get user(): HousekeepingUserDetailData | null { return this._user; } +} diff --git a/packages/communication/src/messages/parser/housekeeping/index.ts b/packages/communication/src/messages/parser/housekeeping/index.ts new file mode 100644 index 0000000..4e1acd7 --- /dev/null +++ b/packages/communication/src/messages/parser/housekeeping/index.ts @@ -0,0 +1,9 @@ +export * from './HousekeepingActionLogEntryData'; +export * from './HousekeepingActionLogParser'; +export * from './HousekeepingActionResultParser'; +export * from './HousekeepingDashboardParser'; +export * from './HousekeepingRoomData'; +export * from './HousekeepingRoomDetailParser'; +export * from './HousekeepingRoomListParser'; +export * from './HousekeepingUserDetailData'; +export * from './HousekeepingUserDetailParser'; diff --git a/packages/communication/src/messages/parser/index.ts b/packages/communication/src/messages/parser/index.ts index 7a7fc3b..d695022 100644 --- a/packages/communication/src/messages/parser/index.ts +++ b/packages/communication/src/messages/parser/index.ts @@ -24,6 +24,7 @@ export * from './group/utils'; export * from './groupforums'; export * from './handshake'; export * from './help'; +export * from './housekeeping'; export * from './inventory'; export * from './inventory/achievements'; export * from './inventory/avatareffect';