diff --git a/src/nitro/communication/NitroMessages.ts b/src/nitro/communication/NitroMessages.ts index 078d820a..47e17825 100644 --- a/src/nitro/communication/NitroMessages.ts +++ b/src/nitro/communication/NitroMessages.ts @@ -1,5 +1,5 @@ import { IMessageConfiguration } from '../../core/communication/messages/IMessageConfiguration'; -import { ApproveNameMessageComposer, BadgeReceivedEvent, CatalogApproveNameResultEvent, ChangeUserNameResultMessageEvent, FurnitureGuildInfoComposer, MysteryBoxKeysEvent, PetExperienceEvent, PetMountComposer, PetSupplementComposer, RemovePetSaddleComposer, RoomUnitGiveHandItemPetComposer, RoomWidgetCameraPublishedEvent, RoomWidgetCameraPurchaseComposer, SellablePetPalettesEvent, TogglePetBreedingComposer, TogglePetRidingComposer, UnseenResetCategoryComposer, UnseenResetItemsComposer, UsePetProductComposer } from './messages'; +import { ApproveNameMessageComposer, BadgeReceivedEvent, BonusRareInfoMessageEvent, CatalogApproveNameResultEvent, ChangeUserNameResultMessageEvent, FurnitureGuildInfoComposer, GetBonusRareInfoMessageComposer, MysteryBoxKeysEvent, PetExperienceEvent, PetMountComposer, PetSupplementComposer, RemovePetSaddleComposer, RoomUnitGiveHandItemPetComposer, RoomWidgetCameraPublishedEvent, RoomWidgetCameraPurchaseComposer, SellablePetPalettesEvent, TogglePetBreedingComposer, TogglePetRidingComposer, UnseenResetCategoryComposer, UnseenResetItemsComposer, UsePetProductComposer } from './messages'; import { AvailabilityStatusMessageEvent } from './messages/incoming/availability/AvailabilityStatusMessageEvent'; import { CatalogClubEvent } from './messages/incoming/catalog/CatalogClubEvent'; import { CatalogClubGiftsEvent } from './messages/incoming/catalog/CatalogClubGiftsEvent'; @@ -487,6 +487,7 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.REDEEM_VOUCHER_OK, CatalogRedeemVoucherOkEvent); this._events.set(IncomingHeader.CATALOG_RECEIVE_PET_BREEDS, SellablePetPalettesEvent); this._events.set(IncomingHeader.CATALOG_APPROVE_NAME_RESULT, CatalogApproveNameResultEvent); + this._events.set(IncomingHeader.BONUS_RARE_INFO, BonusRareInfoMessageEvent); // CAMERA this._events.set(IncomingHeader.CAMERA_PRICE, RoomWidgetCameraConfigurationEvent); @@ -815,6 +816,7 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.GIFT_CONFIG, CatalogRequestGiftConfigurationComposer); this._composers.set(OutgoingHeader.CATALOG_SELECT_VIP_GIFT, CatalogSelectClubGiftComposer); this._composers.set(OutgoingHeader.CATALOG_REQUESET_PET_BREEDS, CatalogRequestPetBreedsComposer); + this._composers.set(OutgoingHeader.GET_BONUS_RARE_INFO, GetBonusRareInfoMessageComposer); // CAMERA this._composers.set(OutgoingHeader.CAMERA_PRICE, RoomWidgetCameraConfigurationComposer); @@ -1114,6 +1116,7 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.COMMUNITY_GOAL_VOTE_COMPOSER, CommunityGoalVoteMessageComposer); this._composers.set(OutgoingHeader.GET_PROMO_ARTICLES, GetPromoArticlesComposer); + // QUEST this._composers.set(OutgoingHeader.ACCEPT_QUEST, AcceptQuestMessageComposer); this._composers.set(OutgoingHeader.ACTIVATE_QUEST, ActivateQuestMessageComposer); this._composers.set(OutgoingHeader.CANCEL_QUEST, CancelQuestMessageComposer); diff --git a/src/nitro/communication/messages/incoming/IncomingHeader.ts b/src/nitro/communication/messages/incoming/IncomingHeader.ts index 247e5c3a..8c568364 100644 --- a/src/nitro/communication/messages/incoming/IncomingHeader.ts +++ b/src/nitro/communication/messages/incoming/IncomingHeader.ts @@ -265,4 +265,5 @@ export class IncomingHeader public static SEASONAL_QUESTS = 1122; public static QUESTS = 3625; public static QUEST = 230; + public static BONUS_RARE_INFO = 1533; } diff --git a/src/nitro/communication/messages/incoming/catalog/BonusRareInfoMessageEvent.ts b/src/nitro/communication/messages/incoming/catalog/BonusRareInfoMessageEvent.ts new file mode 100644 index 00000000..15bb58d4 --- /dev/null +++ b/src/nitro/communication/messages/incoming/catalog/BonusRareInfoMessageEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent'; +import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent'; +import { BonusRareInfoMessageParser } from '../../parser/catalog/BonusRareInfoMessageParser'; + +export class BonusRareInfoMessageEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, BonusRareInfoMessageParser); + } + + public getParser(): BonusRareInfoMessageParser + { + return this.parser as BonusRareInfoMessageParser; + } +} diff --git a/src/nitro/communication/messages/incoming/catalog/index.ts b/src/nitro/communication/messages/incoming/catalog/index.ts index 518c657a..550b9d0f 100644 --- a/src/nitro/communication/messages/incoming/catalog/index.ts +++ b/src/nitro/communication/messages/incoming/catalog/index.ts @@ -1,3 +1,4 @@ +export * from './BonusRareInfoMessageEvent'; export * from './CatalogApproveNameResultEvent'; export * from './CatalogClubEvent'; export * from './CatalogClubGiftsEvent'; diff --git a/src/nitro/communication/messages/outgoing/OutgoingHeader.ts b/src/nitro/communication/messages/outgoing/OutgoingHeader.ts index 367f695c..4de6ff80 100644 --- a/src/nitro/communication/messages/outgoing/OutgoingHeader.ts +++ b/src/nitro/communication/messages/outgoing/OutgoingHeader.ts @@ -264,4 +264,5 @@ export class OutgoingHeader public static REDEEM_COMMUNITY_GOAL_PRIZE = 90; public static REJECT_QUEST = 2397; public static START_CAMPAIGN = 1697; + public static GET_BONUS_RARE_INFO = 957; } diff --git a/src/nitro/communication/messages/outgoing/catalog/GetBonusRareInfoMessageComposer.ts b/src/nitro/communication/messages/outgoing/catalog/GetBonusRareInfoMessageComposer.ts new file mode 100644 index 00000000..17945045 --- /dev/null +++ b/src/nitro/communication/messages/outgoing/catalog/GetBonusRareInfoMessageComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer'; + +export class GetBonusRareInfoMessageComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor() + { + this._data = []; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/src/nitro/communication/messages/outgoing/catalog/index.ts b/src/nitro/communication/messages/outgoing/catalog/index.ts index 03f9b993..abe7c88f 100644 --- a/src/nitro/communication/messages/outgoing/catalog/index.ts +++ b/src/nitro/communication/messages/outgoing/catalog/index.ts @@ -9,6 +9,7 @@ export * from './CatalogRequestVipGiftsComposer'; export * from './CatalogRequestVipOffersComposer'; export * from './CatalogSearchComposer'; export * from './CatalogSelectClubGiftComposer'; +export * from './GetBonusRareInfoMessageComposer'; export * from './marketplace'; export * from './RedeemItemClothingComposer'; export * from './RedeemVoucherComposer'; diff --git a/src/nitro/communication/messages/parser/catalog/BonusRareInfoMessageParser.ts b/src/nitro/communication/messages/parser/catalog/BonusRareInfoMessageParser.ts new file mode 100644 index 00000000..d3d988cd --- /dev/null +++ b/src/nitro/communication/messages/parser/catalog/BonusRareInfoMessageParser.ts @@ -0,0 +1,50 @@ +import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper'; +import { IMessageParser } from './../../../../../core/communication/messages/IMessageParser'; + +export class BonusRareInfoMessageParser implements IMessageParser +{ + private _productType: string; + private _productClassId: number; + private _totalCoinsForBonus: number; + private _coinsStillRequiredToBuy: number; + + public flush(): boolean + { + this._totalCoinsForBonus = -1; + this._coinsStillRequiredToBuy = -1; + this._productType = ''; + this._productClassId = -1; + return true; + } + + public parse(wrapper:IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._productType = wrapper.readString(); + this._productClassId = wrapper.readInt(); + this._totalCoinsForBonus = wrapper.readInt(); + this._coinsStillRequiredToBuy = wrapper.readInt(); + return true; + } + + public get totalCoinsForBonus(): number + { + return this._totalCoinsForBonus; + } + + public get coinsStillRequiredToBuy(): number + { + return this._coinsStillRequiredToBuy; + } + + public get productType(): string + { + return this._productType; + } + + public get productClassId(): number + { + return this._productClassId; + } +} diff --git a/src/nitro/communication/messages/parser/catalog/index.ts b/src/nitro/communication/messages/parser/catalog/index.ts index 52ac4447..3a6bc3b4 100644 --- a/src/nitro/communication/messages/parser/catalog/index.ts +++ b/src/nitro/communication/messages/parser/catalog/index.ts @@ -1,3 +1,4 @@ +export * from './BonusRareInfoMessageParser'; export * from './CatalogApproveNameResultParser'; export * from './CatalogClubParser'; export * from './CatalogGiftConfigurationParser';