From da733cdaa0c9e379a47ffce6c8bed1c361403cde Mon Sep 17 00:00:00 2001 From: Bill Date: Thu, 26 Aug 2021 00:07:33 -0400 Subject: [PATCH] Add incoming competition --- src/nitro/communication/NitroMessages.ts | 30 +++++-- .../messages/incoming/IncomingHeader.ts | 6 ++ .../CompetitionEntrySubmitResultEvent.ts | 16 ++++ .../CompetitionVotingInfoMessageEvent.ts | 16 ++++ .../CurrentTimingCodeMessageEvent.ts | 16 ++++ .../IsUserPartOfCompetitionMessageEvent.ts | 16 ++++ .../NoOwnedRoomsAlertMessageEvent.ts | 16 ++++ .../competition/SecondsUntilMessageEvent.ts | 16 ++++ .../messages/incoming/competition/index.ts | 6 ++ ...mpetitionEntrySubmitResultMessageParser.ts | 83 +++++++++++++++++++ .../CompetitionVotingInfoMessageParser.ts | 55 ++++++++++++ .../CompetitionVotingInfoResult.ts | 6 ++ .../CurrentTimingCodeMessageParser.ts | 33 ++++++++ .../IsUserPartOfCompetitionMessageParser.ts | 33 ++++++++ .../NoOwnedRoomsAlertMessageParser.ts | 14 ++++ .../competition/SecondsUntilMessageParser.ts | 33 ++++++++ .../messages/parser/competition/index.ts | 7 ++ .../communication/messages/parser/index.ts | 1 + 18 files changed, 395 insertions(+), 8 deletions(-) create mode 100644 src/nitro/communication/messages/incoming/competition/CompetitionEntrySubmitResultEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/CompetitionVotingInfoMessageEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/CurrentTimingCodeMessageEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/IsUserPartOfCompetitionMessageEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/NoOwnedRoomsAlertMessageEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/SecondsUntilMessageEvent.ts create mode 100644 src/nitro/communication/messages/incoming/competition/index.ts create mode 100644 src/nitro/communication/messages/parser/competition/CompetitionEntrySubmitResultMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/CompetitionVotingInfoMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/CompetitionVotingInfoResult.ts create mode 100644 src/nitro/communication/messages/parser/competition/CurrentTimingCodeMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/IsUserPartOfCompetitionMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/NoOwnedRoomsAlertMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/SecondsUntilMessageParser.ts create mode 100644 src/nitro/communication/messages/parser/competition/index.ts diff --git a/src/nitro/communication/NitroMessages.ts b/src/nitro/communication/NitroMessages.ts index a56db141..d18910ad 100644 --- a/src/nitro/communication/NitroMessages.ts +++ b/src/nitro/communication/NitroMessages.ts @@ -11,6 +11,12 @@ import { ThumbnailStatusMessageEvent } from './messages/incoming/camera/Thumbnai import { CampaignCalendarDataMessageEvent, CampaignCalendarDoorOpenedMessageEvent } from './messages/incoming/campaign'; import { CatalogPageExpirationEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPageWithEarliestExpiryMessageEvent, CatalogPublishedMessageEvent, ClubGiftInfoEvent, ClubGiftSelectedEvent, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, ProductOfferEvent, PurchaseErrorMessageEvent, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, VoucherRedeemErrorMessageEvent, VoucherRedeemOkMessageEvent } from './messages/incoming/catalog'; import { ClientPingEvent } from './messages/incoming/client/ClientPingEvent'; +import { CompetitionEntrySubmitResultEvent } from './messages/incoming/competition/CompetitionEntrySubmitResultEvent'; +import { CompetitionVotingInfoMessageEvent } from './messages/incoming/competition/CompetitionVotingInfoMessageEvent'; +import { CurrentTimingCodeMessageEvent } from './messages/incoming/competition/CurrentTimingCodeMessageEvent'; +import { IsUserPartOfCompetitionMessageEvent } from './messages/incoming/competition/IsUserPartOfCompetitionMessageEvent'; +import { NoOwnedRoomsAlertMessageEvent } from './messages/incoming/competition/NoOwnedRoomsAlertMessageEvent'; +import { SecondsUntilMessageEvent } from './messages/incoming/competition/SecondsUntilMessageEvent'; import { CraftableProductsEvent } from './messages/incoming/crafting/CraftableProductsEvent'; import { CraftingRecipeEvent } from './messages/incoming/crafting/CraftingRecipeEvent'; import { CraftingRecipesAvailableEvent } from './messages/incoming/crafting/CraftingRecipesAvailableEvent'; @@ -486,6 +492,14 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.CFH_TOPICS, CfhTopicsInitEvent); this._events.set(IncomingHeader.CFH_SANCTION_STATUS, SanctionStatusEvent); + // CAMERA + this._events.set(IncomingHeader.CAMERA_PUBLISH_STATUS, CameraPublishStatusMessageEvent); + this._events.set(IncomingHeader.CAMERA_PURCHASE_OK, CameraPurchaseOKMessageEvent); + this._events.set(IncomingHeader.CAMERA_STORAGE_URL, CameraStorageUrlMessageEvent); + this._events.set(IncomingHeader.COMPETITION_STATUS, CompetitionStatusMessageEvent); + this._events.set(IncomingHeader.INIT_CAMERA, InitCameraMessageEvent); + this._events.set(IncomingHeader.THUMBNAIL_STATUS, ThumbnailStatusMessageEvent); + // CAMPAIGN this._events.set(IncomingHeader.CAMPAIGN_CALENDAR_DATA, CampaignCalendarDataMessageEvent); this._events.set(IncomingHeader.CAMPAIGN_CALENDAR_DOOR_OPENED, CampaignCalendarDoorOpenedMessageEvent); @@ -527,6 +541,14 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.GROUP_LIST, GuildMembershipsMessageEvent); this._events.set(IncomingHeader.CATALOG_APPROVE_NAME_RESULT, ApproveNameMessageEvent); + // COMPETITION + this._events.set(IncomingHeader.COMPETITION_ENTRY_SUBMIT, CompetitionEntrySubmitResultEvent); + this._events.set(IncomingHeader.COMPETITION_VOTING_INFO, CompetitionVotingInfoMessageEvent); + this._events.set(IncomingHeader.COMPETITION_TIMING_CODE, CurrentTimingCodeMessageEvent); + this._events.set(IncomingHeader.COMPETITION_USER_PART_OF, IsUserPartOfCompetitionMessageEvent); + this._events.set(IncomingHeader.COMPETITION_NO_OWNED_ROOMS, NoOwnedRoomsAlertMessageEvent); + this._events.set(IncomingHeader.COMPETITION_SECONDS_UNTIL, SecondsUntilMessageEvent); + // CLIENT this._events.set(IncomingHeader.CLIENT_PING, ClientPingEvent); @@ -834,14 +856,6 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.CRAFTING_RECIPES_AVAILABLE, CraftingRecipesAvailableEvent); this._events.set(IncomingHeader.CRAFTING_RESULT, CraftingResultEvent); - // CAMERA - this._events.set(IncomingHeader.CAMERA_PUBLISH_STATUS, CameraPublishStatusMessageEvent); - this._events.set(IncomingHeader.CAMERA_PURCHASE_OK, CameraPurchaseOKMessageEvent); - this._events.set(IncomingHeader.CAMERA_STORAGE_URL, CameraStorageUrlMessageEvent); - this._events.set(IncomingHeader.COMPETITION_STATUS, CompetitionStatusMessageEvent); - this._events.set(IncomingHeader.INIT_CAMERA, InitCameraMessageEvent); - this._events.set(IncomingHeader.THUMBNAIL_STATUS, ThumbnailStatusMessageEvent); - // SOUNDS this._events.set(IncomingHeader.JUKEBOX_PLAYLIST_FULL, JukeboxPlayListFullMessageEvent); this._events.set(IncomingHeader.JUKEBOX_SONG_DISKS, JukeboxSongDisksMessageEvent); diff --git a/src/nitro/communication/messages/incoming/IncomingHeader.ts b/src/nitro/communication/messages/incoming/IncomingHeader.ts index 195db9e0..b8d24cbf 100644 --- a/src/nitro/communication/messages/incoming/IncomingHeader.ts +++ b/src/nitro/communication/messages/incoming/IncomingHeader.ts @@ -307,4 +307,10 @@ export class IncomingHeader public static IS_OFFER_GIFTABLE = 761; public static CLUB_EXTENDED_OFFER = 3964; public static SEASONAL_CALENDAR_OFFER = 1889; + public static COMPETITION_ENTRY_SUBMIT = 1177; + public static COMPETITION_VOTING_INFO = 3506; + public static COMPETITION_TIMING_CODE = 1745; + public static COMPETITION_USER_PART_OF = 3841; + public static COMPETITION_NO_OWNED_ROOMS = 2064; + public static COMPETITION_SECONDS_UNTIL = 3926; } diff --git a/src/nitro/communication/messages/incoming/competition/CompetitionEntrySubmitResultEvent.ts b/src/nitro/communication/messages/incoming/competition/CompetitionEntrySubmitResultEvent.ts new file mode 100644 index 00000000..3c3da7cd --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/CompetitionEntrySubmitResultEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { CompetitionEntrySubmitResultMessageParser } from '../../parser'; + +export class CompetitionEntrySubmitResultEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, CompetitionEntrySubmitResultMessageParser); + } + + public getParser(): CompetitionEntrySubmitResultMessageParser + { + return this.parser as CompetitionEntrySubmitResultMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/CompetitionVotingInfoMessageEvent.ts b/src/nitro/communication/messages/incoming/competition/CompetitionVotingInfoMessageEvent.ts new file mode 100644 index 00000000..4afaeabd --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/CompetitionVotingInfoMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { CompetitionVotingInfoMessageParser } from '../../parser'; + +export class CompetitionVotingInfoMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, CompetitionVotingInfoMessageParser); + } + + public getParser(): CompetitionVotingInfoMessageParser + { + return this.parser as CompetitionVotingInfoMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/CurrentTimingCodeMessageEvent.ts b/src/nitro/communication/messages/incoming/competition/CurrentTimingCodeMessageEvent.ts new file mode 100644 index 00000000..a36b3c62 --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/CurrentTimingCodeMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { CurrentTimingCodeMessageParser } from '../../parser'; + +export class CurrentTimingCodeMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, CurrentTimingCodeMessageParser); + } + + public getParser(): CurrentTimingCodeMessageParser + { + return this.parser as CurrentTimingCodeMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/IsUserPartOfCompetitionMessageEvent.ts b/src/nitro/communication/messages/incoming/competition/IsUserPartOfCompetitionMessageEvent.ts new file mode 100644 index 00000000..ab0f5155 --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/IsUserPartOfCompetitionMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { IsUserPartOfCompetitionMessageParser } from '../../parser'; + +export class IsUserPartOfCompetitionMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, IsUserPartOfCompetitionMessageParser); + } + + public getParser(): IsUserPartOfCompetitionMessageParser + { + return this.parser as IsUserPartOfCompetitionMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/NoOwnedRoomsAlertMessageEvent.ts b/src/nitro/communication/messages/incoming/competition/NoOwnedRoomsAlertMessageEvent.ts new file mode 100644 index 00000000..0845f632 --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/NoOwnedRoomsAlertMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { NoOwnedRoomsAlertMessageParser } from '../../parser'; + +export class NoOwnedRoomsAlertMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, NoOwnedRoomsAlertMessageParser); + } + + public getParser(): NoOwnedRoomsAlertMessageParser + { + return this.parser as NoOwnedRoomsAlertMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/SecondsUntilMessageEvent.ts b/src/nitro/communication/messages/incoming/competition/SecondsUntilMessageEvent.ts new file mode 100644 index 00000000..c9e1dd80 --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/SecondsUntilMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { SecondsUntilMessageParser } from '../../parser'; + +export class SecondsUntilMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, SecondsUntilMessageParser); + } + + public getParser(): SecondsUntilMessageParser + { + return this.parser as SecondsUntilMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/competition/index.ts b/src/nitro/communication/messages/incoming/competition/index.ts new file mode 100644 index 00000000..7c2b70a3 --- /dev/null +++ b/src/nitro/communication/messages/incoming/competition/index.ts @@ -0,0 +1,6 @@ +export * from './CompetitionEntrySubmitResultEvent'; +export * from './CompetitionVotingInfoMessageEvent'; +export * from './CurrentTimingCodeMessageEvent'; +export * from './IsUserPartOfCompetitionMessageEvent'; +export * from './NoOwnedRoomsAlertMessageEvent'; +export * from './SecondsUntilMessageEvent'; diff --git a/src/nitro/communication/messages/parser/competition/CompetitionEntrySubmitResultMessageParser.ts b/src/nitro/communication/messages/parser/competition/CompetitionEntrySubmitResultMessageParser.ts new file mode 100644 index 00000000..b050ff8f --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/CompetitionEntrySubmitResultMessageParser.ts @@ -0,0 +1,83 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; + +export class CompetitionEntrySubmitResultMessageParser implements IMessageParser +{ + public static SUBMITTED: number = 0; + public static ASK_FOR_SUBMIT: number = 1; + public static ASK_FOR_CONFIRM: number = 2; + public static PREREQUISITES_NOT_MET: number = 3; + public static ROOM_DOOR_NOT_OPEN: number = 4; + public static ROOM_TOO_OLD: number = 5; + public static ASK_FOR_ACCEPT_RULES: number = 6; + + private _goalId: number; + private _goalCode: string; + private _result: number; + private _requiredFurnis: string[]; + private _missingFurnis: { [index: string]: string }; + + public flush(): boolean + { + this._goalId = 0; + this._goalCode = null; + this._result = 0; + this._requiredFurnis = null; + this._missingFurnis = null; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + this._goalId = wrapper.readInt(); + this._goalCode = wrapper.readString(); + this._result = wrapper.readInt(); + this._requiredFurnis = []; + + let count = wrapper.readInt(); + + while(count > 0) + { + this._requiredFurnis.push(wrapper.readString()); + + count--; + } + + + count = wrapper.readInt(); + + while(count > 0) + { + this._missingFurnis[wrapper.readString()] = ''; + + count--; + } + + return true; + } + + public get goalId(): number + { + return this._goalId; + } + + public get goalCode(): string + { + return this._goalCode; + } + + public get result(): number + { + return this._result; + } + + public get requiredFurnis(): string[] + { + return this._requiredFurnis; + } + + public isMissing(name: string): boolean + { + return !!this._missingFurnis[name]; + } +} diff --git a/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoMessageParser.ts b/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoMessageParser.ts new file mode 100644 index 00000000..0b4f710f --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoMessageParser.ts @@ -0,0 +1,55 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; +import { CompetitionVotingInfoResult } from './CompetitionVotingInfoResult'; + +export class CompetitionVotingInfoMessageParser implements IMessageParser +{ + private _goalId: number; + private _goalCode: string; + private _resultCode: number; + private _votesRemaining: number; + + public flush(): boolean + { + this._goalId = 0; + this._goalCode = null; + this._resultCode = 0; + this._votesRemaining = 0; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + this._goalId = wrapper.readInt(); + this._goalCode = wrapper.readString(); + this._resultCode = wrapper.readInt(); + this._votesRemaining = wrapper.readInt(); + + return true; + } + + public get goalId(): number + { + return this._goalId; + } + + public get goalCode(): string + { + return this._goalCode; + } + + public get isVotingAllowedForUser(): boolean + { + return (this._resultCode === CompetitionVotingInfoResult.ALLOWED); + } + + public get votesRemaining(): number + { + return this._votesRemaining; + } + + public get resultCode(): number + { + return this._resultCode; + } +} diff --git a/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoResult.ts b/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoResult.ts new file mode 100644 index 00000000..119f9b54 --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/CompetitionVotingInfoResult.ts @@ -0,0 +1,6 @@ +export class CompetitionVotingInfoResult +{ + public static ALLOWED: number = 0; + public static REQUIRED_PERK_MISSING: number = 1; + public static REQUIRED_BADGE_MISSING: number = 2; +} diff --git a/src/nitro/communication/messages/parser/competition/CurrentTimingCodeMessageParser.ts b/src/nitro/communication/messages/parser/competition/CurrentTimingCodeMessageParser.ts new file mode 100644 index 00000000..67dcbc48 --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/CurrentTimingCodeMessageParser.ts @@ -0,0 +1,33 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; + +export class CurrentTimingCodeMessageParser implements IMessageParser +{ + private _schedulingStr: string; + private _code: string; + + public flush(): boolean + { + this._schedulingStr = null; + this._code = null; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + this._schedulingStr = wrapper.readString(); + this._code = wrapper.readString(); + + return true; + } + + public get schedulingStr(): string + { + return this._schedulingStr; + } + + public get code(): string + { + return this._code; + } +} diff --git a/src/nitro/communication/messages/parser/competition/IsUserPartOfCompetitionMessageParser.ts b/src/nitro/communication/messages/parser/competition/IsUserPartOfCompetitionMessageParser.ts new file mode 100644 index 00000000..306082d0 --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/IsUserPartOfCompetitionMessageParser.ts @@ -0,0 +1,33 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; + +export class IsUserPartOfCompetitionMessageParser implements IMessageParser +{ + private _Str_8579: boolean; + private _Str_6987: number; + + public flush(): boolean + { + this._Str_8579 = false; + this._Str_6987 = 0; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + this._Str_8579 = wrapper.readBoolean(); + this._Str_6987 = wrapper.readInt(); + + return true; + } + + public get _Str_25348(): boolean + { + return this._Str_8579; + } + + public get _Str_10760(): number + { + return this._Str_6987; + } +} diff --git a/src/nitro/communication/messages/parser/competition/NoOwnedRoomsAlertMessageParser.ts b/src/nitro/communication/messages/parser/competition/NoOwnedRoomsAlertMessageParser.ts new file mode 100644 index 00000000..317a6367 --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/NoOwnedRoomsAlertMessageParser.ts @@ -0,0 +1,14 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; + +export class NoOwnedRoomsAlertMessageParser implements IMessageParser +{ + public flush(): boolean + { + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + return true; + } +} diff --git a/src/nitro/communication/messages/parser/competition/SecondsUntilMessageParser.ts b/src/nitro/communication/messages/parser/competition/SecondsUntilMessageParser.ts new file mode 100644 index 00000000..ffaec3cd --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/SecondsUntilMessageParser.ts @@ -0,0 +1,33 @@ +import { IMessageDataWrapper, IMessageParser } from '../../../../../core'; + +export class SecondsUntilMessageParser implements IMessageParser +{ + private _Str_8997: string; + private _Str_21095: number; + + public flush(): boolean + { + this._Str_8997 = null; + this._Str_21095 = 0; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + this._Str_8997 = wrapper.readString(); + this._Str_21095 = wrapper.readInt(); + + return true; + } + + public get _Str_23288(): string + { + return this._Str_8997; + } + + public get _Str_25497(): number + { + return this._Str_21095; + } +} diff --git a/src/nitro/communication/messages/parser/competition/index.ts b/src/nitro/communication/messages/parser/competition/index.ts new file mode 100644 index 00000000..674fda0e --- /dev/null +++ b/src/nitro/communication/messages/parser/competition/index.ts @@ -0,0 +1,7 @@ +export * from './CompetitionEntrySubmitResultMessageParser'; +export * from './CompetitionVotingInfoMessageParser'; +export * from './CompetitionVotingInfoResult'; +export * from './CurrentTimingCodeMessageParser'; +export * from './IsUserPartOfCompetitionMessageParser'; +export * from './NoOwnedRoomsAlertMessageParser'; +export * from './SecondsUntilMessageParser'; diff --git a/src/nitro/communication/messages/parser/index.ts b/src/nitro/communication/messages/parser/index.ts index 4a5303e1..a50fc39b 100644 --- a/src/nitro/communication/messages/parser/index.ts +++ b/src/nitro/communication/messages/parser/index.ts @@ -4,6 +4,7 @@ export * from './avatar'; export * from './camera'; export * from './catalog'; export * from './client'; +export * from './competition'; export * from './desktop'; export * from './friendlist'; export * from './game';